2013年1月5日
摘要: Y组合子是用于lambda演算中实现递归逻辑的。当我们用erlang实现一个递归的匿名函数来完成阶乘,第一印象应该会写成如下这种形式:F = fun(1) -> 1; (N) -> N * F(N -1) end.如果我们在程序代码中按照这种方式书写,在数学推演中是不可能的,(虽然现代编程语言中有些编译器可以识别的),因为在lambda函数定义时,F还根本没有意义。这时候我们该怎么办呢, 如果要实现这种递归函数, 我能想到的就是把这个F变成约束变量,那么可以假设出另外存在一个高阶函数,将F作为参数传递进去,则得到F = fun(Func) -> fun(1) -> 1; 阅读全文
posted @ 2013-01-05 18:09 文武双全大星星 阅读(692) 评论(0) 推荐(0) 编辑