FAQ terminology harmonisation

Matthias Lang matthias@REDACTED
Thu Apr 3 21:18:46 CEST 2003


Rick Pettit writes:

 > Agreed. Out of curiousity, if you were to write a C/C++ application
 > (I know, it's too gruesome to think about), would you follow the 
 > same strategy? That is, would you NOT check for NULL, etc, in cases
 > where you just should not be passed NULL? How about in an
 > application comprised of distinct processes in a chain which 
 > could die and be reborn without the entire application crashing?

not checking for "NULL" isn't quite the same as the usual erlang
approach. The usual erlang approach is to use pattern matching to
force an abort in many cases where something unexpected happens, e.g.

   {ok, S} = gen_tcp:connect(Host, Port, Options),
   ...

you can't really write that naturally in C, I find myself forever
writing

   sock = connect(...);
   assert(sock);

Is that defensive programming? Not really, IMO. PERL has an idiom
which is somewhat like Erlang, btw: f() || die

Matthias



More information about the erlang-questions mailing list