Haskell社区中的约定"runSomething"的含义是什么?

Lay*_*lez 6 haskell newtype

我在一些文档和教程中看到过:

这种模式涵盖的抽象概念是什么?在Haskell中运行什么意味着什么?

附带问题,是否有一个你一直想知道的东西的标签,但是太害怕了?

Yaw*_*war 10

在Haskell中,约定runSomething意味着'执行给定参数内描述的效果,并返回结果值'.

我故意说"效果",因为我很模糊; 在Haskell中,您使用类型系统来描述可能发生的不同效果,例如执行I/O或修改状态等.因此,根据确切的类型,可能会在返回最终值之前运行不同的效果.

  • 并且为了完整性:`evalSomething`用于当你不关心效果并希望以最轻的方式获得它计算的价值时,而'execSomething`则用于当你只关心它的效果和价值时最后的计算是无关紧要的. (10认同)