Haskell的函数式和Scheme的函数式和Clojure的函数式有什么区别吗?
谢邀,本质上没区别。 函数式无非就是把函数作为 first-class value。然后进而就有了函数对象、高阶函数以及闭包等概念。只是落到具体的语言层面一些基本的限制决定了他们表现起来不同。 比如 Haskell 的“纯”函数式,无非是没有了 mutable,以及把 side effect 做了另一种封装而已。 再看早些年的 C++,Functor 这种东西虽然丑,lambda 表达式也没出来,人家还敢给自己加一个 <functional> 的标准头文件。 其他的,诸如模式匹配等,并不是“函数式”所独有。至于宏,则就更跟函数式扯不上半毛钱关系了。 以上。