这些seq / pseq定义有什么问题?

时间:2016-12-22 22:07:03

标签: haskell computer-science

普遍认为seq / pseq函数无法在没有扩展或基本操作的标准Haskell中定义。但是,以下函数(仅使用标准Haskell 98/2010定义)的行为与它们的实际对应物之间的区别是什么?

data Seq a b = Seq !a !b
seq a b = case Seq a b of
    Seq _ x -> x

data PSeq a b = PSeq !a b
pseq a b = case PSeq a b of
    PSeq _ x -> x

例如,很容易检查此定义是否满足

seq ⊥ x = ⊥

其他一些简单的实验表明,seq / pseq和真实版本之间没有区别。那有什么不对?

0 个答案:

没有答案