函数式编程
2015-10-18 20:32
369 查看
first class element
一般而言,程序设计语言总会对计算元素的可能使用方式强加上某些限制。带有最少限制的元素被称为具有第一级的状态。第一级元素具有某些“权利或者特权”包括:可以用变量命名;
可以提供过程作为参数;
可以由过程作为结果返回;
可以包含在数据结构中。
Lazy evaluation
Guava中的Iterables#filter所谓函数式编程,就是是函数是一等公民。
Ps:个人感觉「第一级」翻译成「第一等公民」更为恰当。)
尾递归
长期以来,尾递归一直被看作一种编译技巧。尾递归的坚实语义基础有Carl Hewitt(1977)提供,他利用“消息传递”模型解释尾递归。Map&Reduce
有了一个尾递归的实现,我们就可以利用常规的过程调用机制表述迭代,这也会使各种复杂的专用迭代结构编程不过是一些语法糖衣了。参考资料:
函数式编程
《计算机程序的构造与解释》
懒惰的力量
相关文章推荐
- C#函数式编程中的缓存技术详解
- C#函数式编程中的部分应用详解
- 浅谈javascript函数式编程
- 使用 JavaScript 进行函数式编程 (一) 翻译
- C#函数式编程中的标准高阶函数详解
- 深入探讨javascript函数式编程
- Java函数式编程(五):闭包
- javascript 函数式编程
- 用函数式编程技术编写优美的 JavaScript_ibm
- C#函数式编程中的递归调用之尾递归详解
- Javascript函数式编程语言
- C#函数式编程中的惰性求值详解
- javascript函数式编程程序员的工具集
- Javascript函数式编程简单介绍
- 《JavaScript函数式编程》读后感
- Java函数式编程(十二):监控文件修改
- Java函数式编程(七):MapReduce
- Java函数式编程(四):在集合中查找元素
- Java函数式编程(十):收集器
- Java函数式编程(八):字符串及方法引用