我正在做一些 HtDP(如何设计程序)的练习,我有点卡在布尔比较问题上。它是这样的。
(define b1 true)
(define b2 false)
编写一个表达式来计算 b1 是否为假且 b2 是否为真。如果 false 产生 No ,反之亦然。
现在这就是我想出的全部:
(and b1 true) => true
(无耻。我知道,但我对此很陌生,而且我真的很慢赶上)
您能给我的任何帮助将不胜感激。
谢谢
我正在做一些 HtDP(如何设计程序)的练习,我有点卡在布尔比较问题上。它是这样的。
(define b1 true)
(define b2 false)
编写一个表达式来计算 b1 是否为假且 b2 是否为真。如果 false 产生 No ,反之亦然。
现在这就是我想出的全部:
(and b1 true) => true
(无耻。我知道,但我对此很陌生,而且我真的很慢赶上)
您能给我的任何帮助将不胜感激。
谢谢
将问题转换为代码非常简单。作为第一种方法,让我们用伪代码逐字复制问题:
(b1 == false) AND (b2 == true)
现在,您将如何在 Scheme 中编写以上内容?请记住,Scheme 使用前缀表示法
(<???> (<???> b1 false) (<???> b2 true))
通过更多的练习,相同的代码可以像这样更紧凑地编写(再次,首先是伪代码):
NOT b1 AND b2
这应该很简单,可以用 Scheme 编写:
(<???> (<???> b1) b2)
不确定这是否是 HtDP 编写表达式的方式,但是您可以编写一个简单的真值表并找到布尔表达式:
b1 | b2 | 是
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0
因此 Y = (NOT b1) AND b2 => TRUE