[erlang-questions] style question - best way to test multiple non-guard conditions sequentially

Anthony Ramine n.oxyde@REDACTED
Tue Jul 16 03:21:12 CEST 2013


Nevermind that part, mistook Bt for Bf.

-- 
Anthony Ramine

Le 16 juil. 2013 à 03:20, Anthony Ramine a écrit :

> And reading your mail again, are you sure you meant that Bf should be executed? Whether in if or cond, that definitely sounds wrong.
> 
> -- 
> Anthony Ramine
> 
> Le 16 juil. 2013 à 03:16, Anthony Ramine a écrit :
> 
>> I disagree.
>> 
>> In the case of 'if', the tests are disjunctions of conjunctions of guards; whereas in the case of 'cond' they should be boolean tests. So what is a valid 'if' clause may not be a 'cond' one.
>> 
>> Furthermore, in the case of 'if', the fact that foobar just fails silently is because guard semantics are used: the very thing that is not used in 'cond' expressions.
>> 
>> -- 
>> Anthony Ramine
>> 
>> Le 16 juil. 2013 à 00:30, Richard A. O'Keefe a écrit :
>> 
>>> When there is a choice between two constructs such as
>>> 	if G -> Bt ; true -> Bf end
>>> and	case {} of {} when G -> Bt ; {} when true -> Bf end
>>> that *LOOKS* as though it is purely stylistic,
>>> it should *BE* purely stylistic.
>>> 
>>> Consider
>>> 	if E -> Bt ; true -> Bf end
>>> and
>>> 	cond E -> Bt ; true -> Bf end
>>> 
>>> where E is such that both forms are syntactically legal.
>>> It *looks* as though the choice is purely stylistic.
>>> So it should *be* purely stylistic, otherwise it would
>>> be gratuitously difficult to change from one to the other.
>>> And that means that
>>> 
>>> 	cond foobar -> Bt ; true -> Bf end
>>> 
>>> should execute Bf and NOT complain about foobar.
>>> (Yes, my prototype got this wrong.  I just hadn't thought
>>> it through clearly.)
>>> 
>>> 
>> 
> 




More information about the erlang-questions mailing list