[erlang-questions] nand problem
Roelof Wobben
r.wobben@REDACTED
Mon Jan 26 18:40:56 CET 2015
Roelof Wobben schreef op 26-1-2015 om 18:36:
> Hugo Mills schreef op 26-1-2015 om 18:26:
>> On Mon, Jan 26, 2015 at 05:21:42PM +0100, Roelof Wobben wrote:
>> [snip]
>>> b_and(true, true) ->
>>> true;
>>>
>>> b_and(true, false) ->
>>> false;
>>>
>>> b_and(false, true) ->
>>> false;
>>>
>>> b_and(false, false) ->
>>> false.
>> You could make this shorter and possibly easier to read with
>>
>> b_and(true, true) ->
>> true;
>> b_and(_, _) ->
>> false.
>>
>> i.e. define the (one) special case, and then just say that
>> everything else evaluates to false. You can do something similar with
>> b_or.
>>
>> Hugo.
>>
>
> Yes, I could do that .
> I thought I have read somewhere that using _ for defensive programming
> was nog good practice
> but that was on using other on case on the next chapter.
>
> I will change my code.
>
> Roelof
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
This one better :
-module(boolean).
-export([b_not/1, b_and/2, b_or/2, b_nand/2]).
b_not(true) ->
false;
b_not(_) ->
true.
b_and(true, true) ->
true;
b_and(_, _) ->
false.
b_or(true, _) ->
true;
b_or(_, true) ->
true;
b_or(false, false) ->
false.
b_nand(true,true) ->
b_not(b_and(true, true));
b_nand(_, _) ->
b_not(b_and(true, false));
Roelof
More information about the erlang-questions
mailing list