【问题标题】:Exclamation mark in data declaration in Haskell [duplicate]Haskell中数据声明中的感叹号[重复]
【发布时间】:2016-07-08 16:59:55
【问题描述】:

这个 Haskell 数据声明中的感叹号是什么意思:

data Sample = First !Integer | Second !String

【问题讨论】:

  • 这是一个爆炸模式。这意味着构造是字符串,所以First undefined == undefined.

标签: haskell


【解决方案1】:

它使这个字段严格 - see here

如果您将其添加到字段中,您可以确保在使用构造函数时评估该值 - 这通常有助于避免空间泄漏(来自巨大的 thunk 链)

如果您使用 GHC8,如果您使用 Strict or StrictData pragma,则默认情况下可以使用此功能

【讨论】:

    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2011-05-29
    • 2018-03-18
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多