Ternary operator used as assert
Attila Rajmund Nohl
Tue Dec 22 12:18:37 CET 2009
There was a recent thread here about how to implement a C-style "?:"
code in Erlang. My code would look something like this in C:
strlen(X)==0 ? OK : return X;
My very naive generic Erlang implementation is this:
assert(true, Val, _) ->
assert(false, _, Val) ->
And the call would be this:
assert(X == , ok, hd(X)).
Of course, this doesn't work if the list X is actually empty. The
hd(X) is evaluated even if the X list is empty and the code crashes.
This is a big difference to the C code where the "else" branch is not
executed. Is there an elegant, one liner solution?
More information about the erlang-questions