假设有一个表达式基本上被简化为:
(true false)
,或任何真假的组合。
例如,
[(predicate) false]
或[(predicate) (predicate)]
我试图理解如何在Scheme中评估这样的表达式 - 这句话本质上是什么?
答案 0 :(得分:1)
作为cond
中的术语:
(cond
[(predicate) false]
[else true])
是(not (predicate))
的条件实现,因为谓词需要是一个真值来获得错误的结果。
(cond
[(predicate) (predicate)]
[else false])
这与(predicate)
相同,因为它成为所有真值的自身,而我添加的默认情况变为它的假值。
在其中任何一个中如果你有其他东西作为默认情况,它当然不会映射到那些简单的结果,而是稍微复杂的结果:
(cond
[(predicate) (predicate)]
[else 'something])
与(and (predicate) 'something)
相同,因为我们已将错误值更改为something
。
(cond
[(predicate) false]
[else 'something])
与(and (not (predicate)) 'something)