我是haskell的初学者,最近我在haskell Wiki上阅读了有关严格性分析的信息。GHC用户指南如下:
严格性分析器确定何时可以“严格地”对待函数中的参数和变量(即始终在函数中对其进行评估)。
通常,我还读到了何时可以推断出严格性。但是,作为一个初学者,我并不总是确定ghc是否实际上将我打算严格执行的代码视为严格。
目前,除了向程序提供大数据之外,我没有其他方法可以找到是否进行严格的分析。
有什么办法问ghc是否可以推断给定的代码严格?
我所看到的唯一实际验证GHC推断出严格性的方法是读取称为Core的已编译程序的中间表示。
一些学习阅读核心输出的资源:
但是,另一种方法是简单地告诉GHC,例如,使用BangPatterns
语言扩展或seq
函数,应严格评估哪些表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句