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

Yos*_*osh 7 haskell ghc

我是一名haskell初学者,最近我读到了关于haskell wiki的严格性分析.GHC用户指南内容如下:

严格性分析器可以确定函数中的参数和变量何时可以"严格"处理(即它们总是在某个时刻在函数中进行求值).

我还读到了一般情况下何时可以推断出严格性.然而,作为一个初学者,我并不总是知道如果GHC居然把我的一段代码,我打算要严格要求,为严格.

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

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

Eri*_*ikR 8

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

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

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