我不太清楚 seq 在 Haskell 中是如何工作的。
看来在很多情况下写起来很有用
seq x x
甚至可以定义一个函数:
strict x = seq x x
但这样的功能还不存在,所以我猜这种方法在某种程度上是错误的。有人可以告诉我这是否有意义或有用吗?
seq a b
返回值b
,但使该值取决于评估a
. Thus, seq a a
与a
.
我认为这里的误解是seq
不执行任何操作,因为纯函数不执行任何操作,它只是引入依赖项。
有一个功能evaluate :: a -> IO ()
in Control.Exception
这就是你想要的(注意它在IO
)。他们将其放入异常中,因为查看表达式的计算是否会抛出异常以及如果抛出异常则处理异常很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)