解释函数式编程模型与过程或面向对象模型的区别

时间:2015-12-02 14:33:33

标签: functional-programming

任何人都可以解释函数式编程模型与过程模型或面向对象模型的区别。 我自己无法得出一个好的答案。

1 个答案:

答案 0 :(得分:0)

在我看来FP是关于函数(这是数学意义上的函数) - 这意味着referential transparency,如果你继续thouhgt, immutable 数据。

这是我看到的最大区别:你没有 mutate 数据 - 而且大多数其他方面要么直接来自这个,要么来自酷类型系统(这对于语言来说不是必需的)称为 functional )和学术性质。

但当然还有更多内容,你可以阅读papers,完整的书籍,或只是wikipedia

请注意,您可以争议 属性然后事情变得更加模糊......这不应该让您感到惊讶,因为大多数函数式语言广泛允许变异(Clojure,Scala,F#,Ocaml,...)并且没有很多

在这种情况下,最大的区别可能是你用高阶函数抽象事物的方式(至少函数应该是一等公民 - 这意味着你可以传递它们并将它们作为值)。

但总的来说,这个问题确实是自以为是,很可能会以广泛或其他方式关闭 - 也许你应该要求细节而不是大图片