2016-09-24 7 views
0

本質的に点: (true false)、または真と偽の任意の組み合わせに単純化された式があるとします。例えばスキーム/ラケット:述語と真/偽の評価

[(predicate) false]または[(predicate) (predicate)]

私はスキームで評価されているか、そのような表現を理解しようとしています - そのような記述は、基本的に何を言っていますか? condにおける用語として

+0

と同じになります例は 'cond'特殊な形式で用語ことになっていますか?彼らが今書いているように、 '述語'が引数として 'false'を取る手続きを返す必要があるようです。 (角括弧は、カッコが付いているすべての場所で使用できます。例えば、 '[odd?5]; ==>#t') – Sylwester

+0

はい、これらはcond条件であるはずです。そしてあなたは正しいです、彼らは最初に真実か偽を返すための手続きを経ます。 @シルウェスター –

答えて

1

:述語が偽の結果を得るために真の値にする必要があるので、

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

(not (predicate))の条件付きの実装だろう。それは、すべての真の値のために自分自身になり、私が追加したデフォルトの場合は、それが偽の値だとなるため

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

これは(predicate)と同じです。これらのいずれにおいても

デフォルトのケースとして、他の何かを持っている場合、それは当然のことながら、これらの単純な結果にマッピングしないだろうが、もう少し複雑なもの:私たちは持っているので

​​

(and (predicate) 'something)と同じになりますfalse値をsomethingに変更しました。

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

(and (not (predicate)) 'something)

関連する問題