布尔比较

时间:2013-03-07 02:11:57

标签: comparison scheme boolean computer-science boolean-expression

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

    (define b1 true)

    (define b2 false)

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

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

   (and b1 true) => true 

(无耻。我知道,但我是新手,而且我很难接受)

你能给我的任何帮助都会受到赞赏。

由于

2 个答案:

答案 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;是的