我想学习 Erlang,在书中我有一个练习:编写一个模块 boolean.erl,它接受逻辑表达式和布尔值(表示为原子 true 和 false)并返回它们的布尔结果。您编写的函数应包括 b_not/1、b_and/2、b_or/2 和 b_nand/2。您不应该使用逻辑结构 and、or 和 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.
最后一个例子怎么解决,我真的不明白。有什么帮助吗?谢谢。