2016-09-24 27 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)