Chinaunix首页 | 论坛 | 博客
  • 博客访问: 180260
  • 博文数量: 36
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-04 12:39
文章分类

全部博文(36)

文章存档

2010年(1)

2009年(35)

我的朋友

分类: LINUX

2009-04-24 22:46:33

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.pdf

FP 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) |
给主人留下些什么吧!~~