[erlang-questions] nand problem

Roelof Wobben <>
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
> 
> 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