1.背景
学习函数式编程也有一段时间了,首先发现学习这类的主题交叉的东西太多了,然后又发现追根溯源太耗时间和精力了。好想吃个什么羊草猪草就一下子通了任督二脉了,期望照进现实还是得埋头苦学呀。
前段学习后总结自己给了自己一个答案,就是自己还是太具体了,抽象层次不够。要学函数式编程,得把一个东西给搞透了,那就是眼里值(value)和函数(function)没有区别。于是就找到了这里Church encoding。加上前面说的Javascript也可以装B的文章,所以就来用Js来实现一些church encoding吧。
2.开始实现
a:邱奇数
//零 var zero=function(action){ return function(x){return x;}; } //加一 var succ=function(n){ return function(action){ return function(x){ return action(n(action)(x)); }; }; } //加法 var plus=function(m,n){ return function(action){ return function(x){ return m(action)(n(action)(x)); } }; } //乘法 var mult=function(m,n){ return function(action){ return function(x){ ret