1

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

(define b1 true) 

    (define b2 false) 

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

现在这是我想出了:

(and b1 true) => true 

(无耻,但我知道我是新在此,我要赶上速度很慢。)

任何帮助你可以给我会比赛赞赏。

感谢

回答

2

这是非常简单的翻译的问题成代码。作为第一种方法,让我们逐字复制的问题在伪代码:

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

现在,你怎么会写在方案上面?记住,计划使用前缀符号

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

随着越来越多的实践了一下,相同的代码可以更简洁的写成这样(再次,第一伪代码):

NOT b1 AND b2 

应该是足够简单写入方案:

(<???> (<???> b1) b2) 
0

不知道这是写作表达的HTDP方式,但你可以写一个简单的事实表,发现布尔表达式:

B1 | b2 | Y

0 | 0 | 0

0 | 1 | 1

1 | 0 | 0

1 | 1 | 0

因此Y =(NOT B1)和B2 => TRUE