python 的函数编程提到了lambda,于是查了一下。有个疑惑:我觉得FP是一种思想,lambda只是跟这种思想类似,然而为什么人们提到FP就必然提及lambda呢,并且还要说起源于?见下面这句来自wiki FP的话,Functional programming has its roots in the lambda calculus, a formal system developed in the 1930s to investigate function definition,function application, and recursion. Many functional programming languages can be viewed as embellishments to the lambda calculus
下面是我查的一些资料lambda 简介http://en.wikipedia.org/wiki/Lambda_calculus看这个要好懂一些,比wiki详细点,看了前面的几章之后我才明白lambda对元素本身(boolean,natural number)和运算符(add,multi等)的描述能力,~selinger/papers/lambdanotes.pdfFP from wikipedia这篇文章讲了对FP的一些看法,作者虽然提到了lambda,但是更多的是说FP是一种思想,以及他的两个特色,而不是强调没有lambda,就没有FP(前面所谓rooted应该就是说,没有A,就没有B)http://jerrylovesrebol.blogspot.com/2008/05/fp_22.html我的想法是介绍FP可以说:FP是一种编程思想,跟lambda这个思想很类似....,而不是一开始介绍FP,就开始说:FP起源于lambda,。。。。(介绍lambda),举两个FP的例子....我想到这个问题是因为,介绍FP的文章说到FP的两个特点,no side effect, and function is first-class, 只要注意设计,使用C也可以实现FP,这根lambda没有什么关系,所以我们总是一开始说FP就介绍lambda,然而lambda又不是两句话能说明白的(而且大多数类似文章也没有说明白lambda是什么),就使人很困惑,是不是我不看lumbda就不能继续学习FP了?这会造成一种误解:如果不弄懂lambda就继续学习FP,心里有种虚的感觉,而实际上,完全不是这样,我看了上面的(pdf)介绍的lambda之后,觉得明白lambda和FP编程关系不大。
阅读(730) | 评论(0) | 转发(0) |