functional-programming - Clojure:使用具有状态的 Java 对象的能力是否违背了函数式 P 的整个想法?

标签 functional-programming clojure

我认为整个想法是只进行无状态和无副作用的计算。现在,如果一个 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/

相关文章:

linux - bash脚本-更改所有目录中文件中的字符串

clojure - 为什么参数列表为ArraySeq?

scala - 值、类型、种类……作为无限序列?

javascript - JavaScript 中的延迟/ promise 概念是一个新概念还是函数式编程的传统部分?

haskell - 一个简单的例子表明 IO 不满足单子(monad)定律?

C 的代码 koans?

Clojure,Compojure-api : Access Request headers

matlab - 如何从 matlab 运行 clojure

java - 为什么 java.util.function 不为所有原始类型定义专门的功能接口(interface)?

javascript - 将具有逻辑和用户界面的函数转换为高阶函数