Scala中的纯FP?

ary*_*rya 5 functional-programming scala scalaz

我的印象是有人在那里使用Scalaz编写纯应用程序,但基于这个例子:[ 在scalaz中堆叠StateT ],看起来任何真实的东西也是不可能的毛茸茸的.

在Scala中是否有任何关于真实,模块化,松散耦合的纯应用程序的指南或示例?我期待这意味着scalaz.effect.SafeApp和RWST相比IO,但我想听听已经完成它的人们的意见.

谢谢.

编辑:在没有答案的情况下,我开始收集资源作为下面的答案.如果您有任何贡献的示例或相关链接,请执行.

pio*_*rek 1

我认为你正在混合两种不同的东西。一是纯函数式编程,二是scala类型系统。你可以用任何语言进行“纯”编程,甚至是 Java。如果该语言是函数式的,那么您将拥有纯函数式编程。

  • 它能让你的程序运行得更快吗?取决于程序 - 它可以更好地扩展,但对于单线程部件,您会宁愿失去性能。
  • 它能“拯救你的认知”吗?这取决于你所做的事情有多好。如果你每天使用 FP、monad、arrows 等,那么我认为它可能会有很大帮助。如果你向面向对象开发人员展示代码,他可能什么也看不懂。
  • 是否节省了开发时间?和以前一样,我认为可能会,但说实话,这并不重要。你更经常地阅读代码而不是编写代码
  • 你能在 PFP 中做一些有用的事情吗?是的,有些公司靠 haskell 赚钱

现在,可以在 scala 中完成吗?一定。有人会用scala来做吗?可能不是因为它太容易破坏纯度,因为类型系统太弱,并且因为有更好的、“更纯粹”的工具(但目前不在 jvm 上)