2016-09-24 85 views
0

假设有一个表达式基本上被简化为: (true false)或真或假的任意组合。方案/球拍:评估谓语和真/假

例如, [(predicate) false][(predicate) (predicate)]

我想了解如何表达这样的方案进行评估 - 什么是这样的说法基本上是在说什么?

+0

同样是例子应该是在'cond'特殊形式的条款?正如现在写的,似乎'predicate'需要返回一个过程来将'false'作为参数。 (方括号可用于所有你有括号的地方,例如'[odd?5]; ==>#t') – Sylwester

+0

是的,它们应该是cond。你是对的,他们会首先通过一个程序来返回真或假。 @Sylwester –

回答

1

作为一个术语在cond

(cond 
    [(predicate) false] 
    [else true]) 

将是有条件实现的(not (predicate))因为谓词必须是一个真正的价值会得到一个错误的结果。

(cond 
    [(predicate) (predicate)] 
    [else false]) 

这是一样的(predicate),因为它本身成为所有真正的价值,我已经添加了默认情况下变得很假值。

在任何这些,如果你有别的东西作为默认情况下,它当然不会映射到这些简单的结果,但一个稍微复杂一点的:

​​

将是相同(and (predicate) 'something),因为我们有将错误值更改为something

(cond 
    [(predicate) false] 
    [else 'something]) 

将作为(and (not (predicate)) 'something)