假设存在一个表达式,其本质上被简化为:(true false)
,或任何真与假的组合。
[(predicate) false]
或[(predicate) (predicate)]
我试图理解这样的表达式是如何在Scheme中评估的-这样的语句本质上说的是什么?
作为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)