我對lambda微積分很新,在閱讀教程時遇到了這個問題。 這是我的等式。Lambda微積分函數的減少
Y = ƛf.(ƛx.f(xx)) (ƛx.f(xx))
現在,如果我們應用的另一種說法,假設F(YF),那麼我們如何能減少this.If我根據測試減少是正確的,我們可以在替換所有˚F(ƛx .f(xx))由(ƛx.f(xx)),這是正確的,如果是的話,我們該怎麼做。
感謝
我對lambda微積分很新,在閱讀教程時遇到了這個問題。 這是我的等式。Lambda微積分函數的減少
Y = ƛf.(ƛx.f(xx)) (ƛx.f(xx))
現在,如果我們應用的另一種說法,假設F(YF),那麼我們如何能減少this.If我根據測試減少是正確的,我們可以在替換所有˚F(ƛx .f(xx))由(ƛx.f(xx)),這是正確的,如果是的話,我們該怎麼做。
感謝
Reuction步驟:
Y = ƛf.(ƛx.f(xx)) (ƛx.f(xx)) = ƛf.(f (ƛx.f(xx) ƛx.f(xx)))
= ƛf.(f (f (ƛx.f(xx) ƛx.f(xx))))
= ƛf.(f (f (f (ƛx.f(xx) ƛx.f(xx))))
= ƛf.(f (f (f (f (ƛx.f(xx) ƛx.f(xx))))) = ...
所以這LAMBDA項進入一個無限循環......
說明:
我們來看看它的長期(ƛx.f(xx) ƛx.f(xx))
我們代替ƛx.f(xx)
與f'
這意味着(f' f')
=>激活術語f'
本身。
可能更容易在這樣看:當您激活ƛy.f(yy)
,並提供輸入(其替代y
與ƛx.f(xx)
)
(ƛy.f(yy) ƛx.f(xx))
現在的結果是:f(ƛx.f(xx) ƛx.f(xx))
這反過來,可以一次又一次去了同樣的過程和拉姆達表達式將只花費...
備註:
這是錯誤寫:
Y = ƛf.(ƛx.f(xx)) (ƛx.f(xx))
它實際上應該是: Y = ƛf.(ƛx.f(xx) ƛx.f(xx))
ƛx.f(xx)
和(ƛx.f(xx))
之間的區別在於,後者是ƛx.f(xx)
激活 - 這是毫無意義的,以激活它像這樣(ƛx.f(xx))
,因爲我們需要一個x
(輸入)來激活它。
最後:
Y = ƛf.(ƛx.f(xx)) (ƛx.f(xx)) = ƛf.(f (ƛx.f(xx) ƛx.f(xx)))
含義:
YF = (ƛx.F(xx)) (ƛx.F(xx)) = F(ƛx.F(xx)) (ƛx.F(xx)) = F(YF)
你能告訴我要遵循的步驟或技術我可以使用 – Pradeep
我不明白你是怎麼ƛf(F(ƛx .f(xx)ƛx.f(xx)))請告訴我們使用的定理 – Pradeep
所以如果我們寫一個像YF這樣的激活,它是否等於'(ƛx.F(xx))(ƛx.F(xx) )' – Pradeep