Functional programming 简·威廉·克洛普是如何做到的;s";(L.)";Y组合器工作?

Functional programming 简·威廉·克洛普是如何做到的;s";(L.)";Y组合器工作?,functional-programming,lisp,computer-science,Functional Programming,Lisp,Computer Science,我理解,但我不理解这个“新奇”组合器的例子,来自: Yk=(L) 哪里: L=λabcdefghijklmnopqstuvxyzr。(r(h i s i s a f i x e d p o i n t c o m b i n a t r)) 这是如何工作的?定点组合器C的本质是cf减少到f(cf)。你对C采取什么态度并不重要,只要这样做就行了。所以不是 (\y f. f (y y f)) (\y f. f (y y f)) 你也可以拿 (\y z f. f (y y y f)) (\y z f

我理解,但我不理解这个“新奇”组合器的例子,来自:

Yk=(L) 哪里: L=λabcdefghijklmnopqstuvxyzr。(r(h i s i s a f i x e d p o i n t c o m b i n a t r))
这是如何工作的?

定点组合器
C
的本质是
cf
减少到
f(cf)
。你对
C
采取什么态度并不重要,只要这样做就行了。所以不是

(\y f. f (y y f)) (\y f. f (y y f))
你也可以拿

(\y z f. f (y y y f)) (\y z f. f (y y y f)) (\y z f. f (y y y f))
基本上你需要这种形式的东西

C t1 t2 ... tN
其中,对于某些
i

C = \x1 x2 .. xN f. f (xi u1 u2 ... xi ... u(N-1) f)
其他术语
tj
uj
实际上没有“使用”。你可以看到Klop的
L
有这种形式(尽管他使用了所有
ti
都是
L
的事实,这样第二个
xi
也可以是任何其他
xj

C = \x1 x2 .. xN f. f (xi u1 u2 ... xi ... u(N-1) f)