【发布时间】:2013-09-23 18:27:18
【问题描述】:
我想学习 Erlang,在书中我有练习: 编写一个模块 boolean.erl,它接受逻辑表达式和布尔值(表示 作为原子真假)并返回它们的布尔结果。功能 你写的应该包括 b_not/1、b_and/2、b_or/2 和 b_nand/2。你不应该使用 逻辑结构和,或,而不是,而是使用模式匹配来实现你的 目标。 从外壳测试您的模块。调用导出函数的一些示例 您的模块包括:
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.
最后一个例子怎么解决,我真的不明白。有什么帮助吗? 谢谢。
【问题讨论】: