Haskell的函数式和Scheme的函数式和Clojure的函数式有什么区别吗?


Author: Kimmy

Haskell的函数式和Scheme的函数式和Clojure的函数式有什么区别吗?

知乎链接


谢邀,本质上没区别。


函数式无非就是把函数作为 first-class value。然后进而就有了函数对象、高阶函数以及闭包等概念。只是落到具体的语言层面一些基本的限制决定了他们表现起来不同。


比如 Haskell 的“纯”函数式,无非是没有了 mutable,以及把 side effect 做了另一种封装而已。


再看早些年的 C++,Functor 这种东西虽然丑,lambda 表达式也没出来,人家还敢给自己加一个 <functional> 的标准头文件。


其他的,诸如模式匹配等,并不是“函数式”所独有。至于宏,则就更跟函数式扯不上半毛钱关系了。


以上。

创建时间:2018-05-03 最近更新时间:2023-11-03