2

私は Erlang を学びたいと思っており、その本には演習があります: 論理式とブール値 (アトム true と false として表される) を取り、それらのブール結果を返すモジュール boolean.erl を書きます。作成する関数には、b_not/1、b_and/2、b_or/2、および b_nand/2 を含める必要があります。論理構造 and, or, and not を使用するのではなく、代わりにパターン マッチングを使用して目標を達成してください。モジュールをシェルからテストします。モジュールでエクスポートされた関数を呼び出す例には、次のようなものがあります。

bool:b_not(false) ⇒ true
bool:b_and(false, true) ⇒ false
bool:b_and(bool:b_not(bool:b_and(true, false)), true) ⇒ true.

したがって、これまでに思いついた最善の解決策は次のとおりです。

-module(b).

-export([b_not/1,b_and/2,b_or/2]).


b_not(false) -> false /= true.
%%%
b_and(false, false) -> false;
b_and(X, Y) -> X == Y.    
%%%
b_or(true, true) -> true;
b_or(X, Y) -> X /= Y.

最後の例の解き方が、よくわかりません。何か助けはありますか?ありがとう。

4

2 に答える 2