The strictness flag !, can only appear in data declarations. It cannot be used in other type signatures
or in any other type definitions. There is no corresponding way to mark function arguments as being strict,
although the same effect can be obtained using the seq or !$functions.
Strictness
flags may be used to address memory leaks: structures retained by the garbage collector but no
longer necessary for computation. Laziness is one of the fundamental properties of Haskell and adding strictness
fl
ags may lead to hard to find infinite loops or have other unexpected consequences.
Actions are sequenced using an operator that has a rather cryptic name: >>= (or 'bind'). Instead of using
this operator directly, we choose some syntactic sugar, the do notation, to hide these sequencing operators
under a syntax resembling more conventional languages. The do notation can be trivially expanded to >>=.
本文探讨了Haskell语言中严格性标志的使用方法及其在数据声明中的作用,并介绍了如何通过seq或!$函数实现函数参数的严格性。此外,还讨论了严格性标志对于解决内存泄漏问题的重要性,以及它可能带来的副作用。
814

被折叠的 条评论
为什么被折叠?



