一篇比较不错的文章: http://coolshell.cn/articles/10822.html
以使用Erlang的感觉看
函数式编程主要具有如下特性:
- 所有都可以转变成函数
- 赋值后的变量在解释器层面具有不可变性
- 尾递归优化
主要技术:
- Map & Reduce
- Pipeline
- 递归
- 参数与返回值均可以是函数
在Ruby中,可以吸取函数式编程带来的建议(Ruby Best practices):
- 仅lamba表达式是用时求值,其它都是及时处理的
- 在编码时,需要注意变量影响问题(grub!等会对变量自身进行改动)
- 通过模块对函数块进行封装与管理
- 通过空间换时间进行优化(Ruby Memorize API)