在我对 Haskell 的研究中,我看到符号 !
用于类型声明。看一个例子:
data Foo = MkFoo
{ _bar :: !Bar
, ...
}
我的问题是:为什么要使用它,与没有它的声明有什么区别?
最佳答案
标有感叹号的字段在相关构造函数的应用程序站点上变得严格。例如,您的数据声明将与没有 !
的情况完全相同,但是在您的代码使用 MkFoo
的任何地方编写以下内容:
bar `seq` MkFoo { _bar = bar }
详细信息为 in the Report .
关于haskell - 在 Haskell 的类型声明中符号 `!` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70084195/