我看到scalaz有一个模块scalaz-effect
结果:在类型系统中表示和组合IO效果的数据结构。
我不太清楚effect在这里是什么意思。这是一个特殊的概念吗?或者仅仅是effect in side-effect
发布于 2015-07-08 10:04:01
副作用和副作用是不一样的。
效果是描述与外界交互的纯表达式,但实际上并不执行这种交互。因此,影响是参照透明的。例如,IO.putStrLn("Hello, world")是一种效果。
副作用是可观察到的与外界的交互,当解释器运行效果时就会发生这种情况。例如,为了使我们的IO示例执行副作用,我们应该在它上运行unsafePerformIO方法:
IO.putStrLn("Hello, world").unsafePerformIO()没有unsafePerformIO,我们的IO[Unit]类型的表达式只是一个纯表达式(比如5 + 8或"abc")。
https://stackoverflow.com/questions/31258649
复制相似问题