我们说一个函数在其参数上是严格的,如果

f ⊥ = ⊥

但是如何说一个函数的参数是非严格的呢?我们能否说一个函数是非严格的,如果
f ⊥ ≠ ⊥



它如何扩展到许多自变量的功能,在此我们可能会或可能不会根据其他自变量的值来评估一个自变量?

我是在使用Haddock文档更好地记录Haskell函数的严格性属性的情况下问这个问题的。

最佳答案

没有表达复杂严格性属性的标准符号。这也不只是严格而已,因为对于数据结构,您可能需要准确说明要评估的量。

也就是说,对于一个简单的功能,例如

cond c t e = if c then t else e

您可以想象说严格性是1 & (2 | 3),这意味着它将评估第一个参数,第二个或第三个参数。这些是简单的严格性分析器将提供的那种严格性属性。 (而且简单的似乎是值得的唯一选择。)

关于haskell - 我们如何正式地说一个函数在参数中是非严格的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27822867/

10-13 03:07