代码改变世界

[置顶]大到可以小说的Y组合子(三)

2015-02-10 01:12 by Coeus Chen, 233 阅读, 0 推荐, 收藏,
摘要:答:关于Fix的问题你fix了吗? 问:慢着,让我想想,上次留下个什么问题来着?是说我们有了一个求不动点的函数Fix,但Fix却是显式递归的,是吧? 答:有劳你还记的这个问题。 问:Fix的参与背离了匿名递归的定义,所以…所以…我们被Fix给坑了? 答:当然不是。你还记的第(一)章我们讨论过什么吗? 问:记的,我们把一个显式递归的Fact变成了一个匿名递归的结构。 答:很好,让我们再造一次轮子。 ... 阅读全文

[置顶]大到可以小说的Y组合子(二)

2015-02-02 22:33 by Coeus Chen, 342 阅读, 0 推荐, 收藏,
摘要:问:上一回,你在最后曾提到“抽象性不足”,这话怎么说? 答:试想,如果现在需要实现一个其它的递归(比如:Fibonacci),就必须把之前的模式从头套一遍,然后通过fib_maker(fib_maker)来返回一个fib函数。可见,这个产生递归过程的“接口”让用户相当不舒服。 问:嗯,fib_maker(fib_maker)这种形式看起来的确不怎么舒服,那又如何对其进行抽象,以得到更好的... 阅读全文

大到可以小说的Y组合子(一)

2015-02-01 22:22 by Coeus Chen, 927 阅读, 2 推荐, 收藏,
摘要:问:上回乱扯淡了一通,这回该讲正题了吧。 答:OK. 先来列举一些我参考过,并从中受到启发的文章。 (1.)老赵的一篇文章:使用Lambda表达式编写递归函数 (2.)装配脑袋的两篇文章:VS2008亮点:用Lambda表达式进行函数式编程和用Lambda表达式进行函数式编程(续):用C#实现Y组合子 (3.)Y组合子的推导过程(用Scheme推导),这里的“推导”并不是数学意义上上的推导证明,而... 阅读全文

大到可以小说的Y组合子(零)

2015-02-01 14:12 by Coeus Chen, 541 阅读, 2 推荐, 收藏,
摘要:问:啊!我想要一个匿名的递归…答:Y(音同Why)…… …问:作为一位命令式语言的使用者,为什么会突然折腾起Y组合子呢?答:的确,这事儿要从很久以前的几次搁浅开始说起…上学的时候,从来没有接触过函数式语言,对其了解只停留在“函数是first-class对象,可以像普通值一样传递”,仅此而已。后来,了... 阅读全文