命令式编程比较牛吗?不!不!不!只是比较快,比较简单,比较诱人而已。 x = x + 1 在以前上小学的美好回忆里,我们可能都曾对上面这个式子感到困惑。这个 x 到底是什么呢?为什么加了一之后,x 仍然还是 x。
不知道为什么,我们就开始写程序了,也就不在乎这是为什么了。心想:“嗯”,“这不是什么大问题,编程就是事情做完最重要,没有必要去挑剔数学的纯粹性(让大学里的大鬍子教兽们去烦恼就好)” 。但我们错了,也因此付出极高的代价,只因我们不了解它。
维基百科的解释:“函数式编程是一种写程序的范式,将计算视为对数学函数的求值,并避免使用状态及可变的数据”换句话说,函数式编程提倡没有副作用的代码,不改变变量的值。这与命令式编程相反,命令式编程强调改变状态。
令人惊讶的是,函数式编程就这样而已。那…有什么好处呢?
更简洁的代码:“变量”一旦定义之后就不再改动,所以我们不需要追踪变量的状态,就可以理解一个函数、方法、类别、甚至是整个项目是怎么工作的。
更多请见:https://github.com/JuanitoFatas/Ruby-Functional-Programming/blob/master/README-zhCN.md