Scala中的纯FP?

时间:2014-05-06 17:17:18

标签: scala functional-programming scalaz

我的印象是,有些人使用Scalaz编写纯应用程序,但基于这个例子:[stacking StateT in scalaz],看起来任何真实的东西都是不可能的毛茸茸的。

Scala中是否有任何关于真实,模块化,松散耦合的纯应用程序的指南或示例?我希望这意味着scalaz.effect.SafeApp和RWST超过IO,但我想听听那些做过它的人的意见。

感谢。

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

2 个答案:

答案 0 :(得分:1)

我认为你正在混合两种不同的东西。一个是纯函数式编程,第二个是scala类型系统。你可以用任何语言进行'纯'编程,即使是在java中也是如此。如果语言是有趣的,那么你将拥有纯粹的函数式编程。

  • 是否可以让您的程序更快地运行?取决于程序 - 它可以更好地扩展,但对于单线程部件,您将更倾向于松散性能。
  • 是否“拯救你的认知”?这取决于你在做什么有多好。如果你每天使用FP,monads,箭头等,那么我认为它可能会有很大帮助。如果您向OO开发人员展示代码,他可能不会理解任何内容。
  • 是否节省了开发时间?和以前一样,我认为可能,但说实话,这并不重要。你经常阅读代码而不是写代码
  • 你可以在PFP中做有用的东西吗?是的,一些公司在哈斯克尔赚钱。

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

答案 1 :(得分:1)

我想我会在这里开始收集资源,并在找到更多时更新。