2016-09-06 33 views
0

演算問題:演算 - 如果有更多的參數需要

TRUE = lambda x y . x 
FALSE = lambda x y . y 
1 = lambda s z . s z 
2 = lambda s z . s (s z) ... 

BoolAnd = lambda x y . x y FALSE 
BoolOr = lambda x y. x TRUE y 
BoolNot = lambda x . x FALSE TRUE 

If I want to know the result of BoolNot 1: 
BoolNot 1 
(lambda x . x FALSE TRUE)(lambda s z . s (s z)) 
(lambda s z . s z) FALSE TRUE 
(lambda x y . y) (lambda x y . x) 

這裏需要X和Y兩個參數,但只有1個在這裏, 我怎麼能繼續這種結石?

回答

1

λ x y. E是「速記」爲λx. (λy. E)

因此,

(λ x y. y) (λ x y. x) 

==> (λx. (λy. y)) (λ x y. x) 

==> λy. y 

即,恆等函數。

+0

謝謝,但你能告訴我λy是什麼。你的意思是? – Andy

+0

@Andy我不確定你在問什麼,但是'λ'是小寫的希臘字符「lambda」,如果這就是你想知道的。 – molbdnilo

0

認爲您在當時應用了一個參數,並且在每個步驟中您都有一個功能減少一個。它沒有意義做(not 1)但結果卻是身份的功能,因爲true變得不使用的變量,因此它會採取另一種說法y和評價y

相關問題