我认为整个想法是只进行无状态和无副作用的计算。现在,如果一个 Clojure 应用程序(或者更糟的是,一个可重用的 Clojure 库 )可以使用和创建任何 Java 对象,我怎么能确定我不会产生副作用或状态?
最佳答案
FP是一种范式,一种概念,但不一定是一种教条。 Clojure 相信程序员会就他将从 FP 离开的地方做出深思熟虑的决定。作为交换,Clojure 提供了惊人的代码聚宝盆,这些代码以 Java 库的形式提供。这使得用 Clojure 或 Web 服务器或 Java 库代码涵盖的任何东西编写 GUI 应用程序变得相对容易和轻松。
请注意,Java“漏洞”并不是 Clojure 从 FP 中提供的唯一逃生 channel :引用和原子保持状态,Clojure 提供了在受控条件下更改状态的函数。我认为这种务实的方法使 Clojure 变得有用并将有助于使其流行。
关于functional-programming - Clojure:使用具有状态的 Java 对象的能力是否违背了函数式 P 的整个想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1673182/