2015-10-14 32 views
-1

我想了解定點組合器。我認爲它被某些語言用來實現遞歸。主要的問題是,我不能讓下一個定義:Y-Combinator definiton

click here to see image

所以,請解釋一下形象。

+0

你自己做任何研究,例如閱讀[維基百科文章](https://en.wikipedia.org/wiki/Fixed-point_combinator#Fixed_point_combinators_in_lambda_calculus)? –

+0

@HansLub是的,我從維基百科讀到,仍然沒有得到它,這就是爲什麼張貼在這裏。 – Charlie

+0

@HansLub你會如何閱讀我鏈接的圖像的定義? – Charlie

回答

0

這是λ演算中的定點組合器(稱爲Y-組合器)的實現。它滿足方程

enter image description here

沒有太多的「獲取」約比滿足上述其他實施。

的Wikipedia條目here顯示Y-組合子是如何滿足上述公式

+0

我讀了維基百科條目,但仍不清楚該定義的語義。特別是它所說的部分:(lamba x.f(x x))..爲什麼參數x在函數f中重複了2次。你能在這裏寫下如何閱讀這個定義嗎? – Charlie

+1

'(x x)'不是'x'重複兩次,但是x應用於它自己。如果你寫出[維基百科文章](https://en.wikipedia.org/wiki/Fixed-point_combinator#Fixed_point_combinators_in_lambda_calculus)中給出的兩個β減少步驟,你會發現這在減少'Y g'到' g(Y g)'注意:這是減少的方向,*不是*'g(Y g)'到'Y g',就像您對固定點所期望的那樣(「將固定點'Y g'插入'g ',啓動減速器並返回'Y g':那是*不是*它是如何工作的......) –