可以用seq来定义pseq吗?

据我所知, seq ab评估(力) ab返回前b 。 它并不保证首先评估a

pseq ab计算a第一,然后评估/返回b

现在考虑以下几点:

xseq a b = (seq a id) b

函数应用程序需要先评估左操作数(以获得lambda表单),并且它不能在进入函数之前盲目评估右操作数,因为这会违反Haskell的非严格语义。

因此(seq a id) b必须首先评估seq a id ,这会强制aid (以某种未指定的顺序(但评估id不做任何事情)),然后返回id b (即b ); 因此xseq ab计算a之前b

xseq的有效实施pseq ? 如果不是,上述参数有什么问题(是否可以根据seq定义pseq )?

链接地址: http://www.djcxy.com/p/43005.html

上一篇: Can pseq be defined in terms of seq?

下一篇: Understanding `evaluate` Functiion