如何判断GHC是否实际推断了严格性?

时间:2014-11-13 02:40:37

标签: haskell ghc

我是一名哈斯克尔初学者,最近我读到了关于the haskell wiki的严格性分析。 GHC user's guide读到:

  

严格性分析器可以确定函数中的参数和变量何时可以严格对待' (也就是说,它们总是在某个时刻在函数中进行评估)。

我还读到了一般情况下何时可以推断出严格性。但是,作为初学者,我并不总是确定ghc是否真的将我的意图严格的代码视为严格的。

目前,我没有其他方法可以确定是否正在进行严格的分析,而不是使用大数据来提供程序。

有没有办法问ghc是否可以推断给定的代码是严格的?

1 个答案:

答案 0 :(得分:8)

我见过的唯一方法实际上验证了GHC推断严格性是读取编译程序的核心的中间表示。

学习阅读核心输出的一些资源:

然而,另一种方法是简单地告诉GHC应该严格评估哪些表达式,例如,使用BangPatterns语言扩展或seq函数。