27得票9回答
在Scheme中,如何使用lambda创建递归函数?

我正在学习Scheme课程,想尝试不使用define来编写递归函数。显然的问题是如果函数没有名称,你无法在函数内部调用它本身。 我找到了这个例子:使用lambda编写的阶乘生成器。((lambda (x) (x x)) (lambda (fact-gen) (lambda (n) ...

8得票3回答
Y combinator、Haskell中的无限类型和匿名递归

我正在尝试解决最大子序列和问题,并想出了一个聪明的解决方案。 msss :: (Ord a, Num a) => [a] -> a msss = f 0 0 f gmax _ [] = gmax f gmax lmax (x:xs) = let g = max (lmax...

7得票1回答
两层“Y型”组合子。这种方法常见吗?它有官方名称吗?

我一直在研究禁止使用前定义和不具有可变单元(无set!或setq)的语言如何提供递归。当然,我遇到了(著名?臭名昭著?)Y组合器及其相关内容,例如: http://www.ece.uc.edu/~franco/C511/html/Scheme/ycomb.html http://okmij...