总说 Go语言是命令语言不是函数语言,Go怎么不是函数语言?GO支持支持闭包,高阶函数,惰性计算,递归,引用透明,垃圾回收,并行计算等,怎么就不是函数语言啦?
我觉得没有必要区分那么明确。面向对象也是如此,其实很多所谓的面向对象语言,是有面向对象的特性,不是纯面向对象的;函数式编程语言也一样,很多语言支持函数式编程,但不是纯函数式语言。
函数式编程的三大特性:
1. immutable data 不可变数据
2. first class functions
3. 尾递归优化
可以看看[《函数式编程》](http://coolshell.cn/articles/10822.html)
#1