我正在从HtDP(如何设计程序)做一些练习,我有点坚持布尔比较问题。它是这样的。
(define b1 true)
(define b2 false)
编写一个表达式,计算b1是否为假,b2为真。如果错误产生否,反之亦然。
现在这就是我想出的全部内容:
(and b1 true) => true
(无耻。我知道,但我是新手,而且我很难接受)
你能给我的任何帮助都会受到赞赏。
由于
答案 0 :(得分:2)
将问题翻译成代码非常简单。作为第一种方法,让我们以伪代码逐字复制问题:
(b1 == false) AND (b2 == true)
现在,您如何在Scheme中编写以上内容?请记住,Scheme使用前缀表示法
(<???> (<???> b1 false) (<???> b2 true))
通过更多练习,可以像这样更紧凑地编写相同的代码(再次,首先在伪代码中):
NOT b1 AND b2
哪个应该足够简单,可以用Scheme编写:
(<???> (<???> b1) b2)
答案 1 :(得分:0)
不确定这是否是编写表达式的HtDP方式,但您可以编写一个简单的真值表并找到布尔表达式:
b1 | b2 | ÿ
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0
因此Y =(NOT b1)AND b2 =&gt;是的