【发布时间】:2012-01-13 05:39:41
【问题描述】:
作为一名长期的 Java 程序员和近年来对 Haskell 的痴迷,我现在正在学习 Scala。我的问题是:
如何在 Java 中编程而不产生副作用?
即我怎样才能手动完成 Scala 为我做的事情?
Odersky 的 Scala 书经常用 OO 术语解释函数概念(例如 val = final,if = ternary op.)。
是否有可访问的指南如何在 Java 中进行编程而不产生副作用(尽可能少)?我想一个人可以通过简单的旧 java 和一些纪律(例如,不可修改的集合、最终值、不修改对象/应用程序状态的严格方法)获得许多已知的好处。
【问题讨论】:
-
这取决于你所说的副作用。在做一些未记录的事情方面,大多数 Java API 没有副作用。
-
@PeterLawrey :我认为 OP 意味着 purity 意义上的副作用。
-
Neal Ford 在 IBM developerWorks 上的一些想法:ibm.com/developerworks/views/java/…:
-
这篇博文可能会让你感兴趣:etorreborre.blogspot.com/2011/12/pragmatic-io.html
-
从并发的角度来看,您可以使用基于 Scala 的解决方案 Akka 应用基于参与者的并发,该解决方案可用于许多不同的 JVM 语言。
标签: java scala functional-programming