1

我正在做一些 HtDP(如何设计程序)的练习,我有点卡在布尔比较问题上。它是这样的。

    (define b1 true)

    (define b2 false)

编写一个表达式来计算 b1 是否为假且 b2 是否为真。如果 false 产生 No ,反之亦然。

现在这就是我想出的全部:

   (and b1 true) => true 

(无耻。我知道,但我对此很陌生,而且我真的很慢赶上)

您能给我的任何帮助将不胜感激。

谢谢

4

2 回答 2

2

将问题转换为代码非常简单。作为第一种方法,让我们用伪代码逐字复制问题:

(b1 == false) AND (b2 == true)

现在,您将如何在 Scheme 中编写以上内容?请记住,Scheme 使用前缀表示法

(<???> (<???> b1 false) (<???> b2 true))

通过更多的练习,相同的代码可以像这样更紧凑地编写(再次,首先是伪代码):

NOT b1 AND b2

这应该很简单,可以用 Scheme 编写:

(<???> (<???> b1) b2)
于 2013-03-07T02:22:14.653 回答
0

不确定这是否是 HtDP 编写表达式的方式,但是您可以编写一个简单的真值表并找到布尔表达式:

b1 | b2 | 是

0 | 0 | 0

0 | 1 | 1

1 | 0 | 0

1 | 1 | 0

因此 Y = (NOT b1) AND b2 => TRUE

于 2013-03-07T02:20:31.007 回答