[erlang-questions] How to make a short circuit in erlang ?

J K jmakarlsson@REDACTED
Tue Mar 26 17:18:26 CET 2013


Hi,
maybe this would work?
http://en.wikipedia.org/wiki/Higher-order_function


or_else([], _) -> false; or_else([F | Fs], X) -> or_else(Fs, X, F(X)). or_else(Fs, X, false) -> or_else(Fs, X); or_else(Fs, _, {false, Y}) -> or_else(Fs, Y); or_else(_, _, R) -> R. or_else([fun erlang:is_integer/1, fun erlang:is_atom/1, fun erlang:is_list/1],3.23).



Johan



>________________________________
> From: 饕餮 <249505968@REDACTED>
>To: erlang-questions <erlang-questions@REDACTED> 
>Sent: Tuesday, March 26, 2013 3:31 AM
>Subject: [erlang-questions] How to make a short circuit in erlang ?
> 
>
>When in other language.We can use like:
>example(Something){
>    if( Something == false)
>        return;
>    //do something here;
>}
>But in Erlang.I have to write like:
>example(Something) ->
>    if
>        Something == false ->
>            false;
>        true ->
>            %do something here
>    end.
>
>
>That's could make the multiple nested like:
>example(Something) ->
>    if
>        Something == false ->
>            false;
>        true ->
>            if
>                Otherthing == false ->
>                    false
>                true ->
>                    %do something here
>    end.
>
>
>Some code could make 5 or more nested in it.
>Is there any idea to make short circuit to reduce of the nested?
>_______________________________________________
>erlang-questions mailing list
>erlang-questions@REDACTED
>http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130326/50628140/attachment.htm>


More information about the erlang-questions mailing list