【发布时间】:2016-07-08 16:59:55
【问题描述】:
这个 Haskell 数据声明中的感叹号是什么意思:
data Sample = First !Integer | Second !String
【问题讨论】:
-
这是一个爆炸模式。这意味着构造是字符串,所以
First undefined == undefined.
标签: haskell
这个 Haskell 数据声明中的感叹号是什么意思:
data Sample = First !Integer | Second !String
【问题讨论】:
First undefined == undefined.
标签: haskell
它使这个字段严格 - see here
如果您将其添加到字段中,您可以确保在使用构造函数时评估该值 - 这通常有助于避免空间泄漏(来自巨大的 thunk 链)
如果您使用 GHC8,如果您使用 Strict or StrictData pragma,则默认情况下可以使用此功能
【讨论】: