【发布时间】:2013-10-21 16:15:03
【问题描述】:
我一直在比较 Scala 在并发编程方面相对于 Java 的优势。
显然我首先想到的是 Scala 是一种函数式编程语言(部分)使用 FP 可以自然地避免副作用
与命令式语言相比,在函数式编程中如何避免副作用以及在多线程/并发编程中如何工作?
【问题讨论】:
-
“Scala 是一种函数式编程语言,可以自然地避免副作用”这是不正确的。 Scala 在功能上不是纯语言,它不会避免副作用。它为您提供了比 Java 更多的控制状态和程序流的方法,是的,但它并不限制您编写有副作用的代码。
-
@VladimirMatveev 已编辑
-
话虽如此,scala has a plugin 允许您在编译期间检查副作用,并在预期为纯的片段中编译失败。
标签: multithreading scala functional-programming concurrent-programming