我正在尝试查看是否可以使用捷径砍伐森林来砍伐 nqueens 程序,我正在使用的代码是,
n = 8
nqueens 0 = [[]]
nqueens k = [p:q | p <- [1..n], q <- nqueens (k-1), safe p q k]
和安全的定义如常。
我尝试通过启用优化来查看 GHC 的输出,但这太难理解了。
谢谢你。
我正在尝试查看是否可以使用捷径砍伐森林来砍伐 nqueens 程序,我正在使用的代码是,
n = 8
nqueens 0 = [[]]
nqueens k = [p:q | p <- [1..n], q <- nqueens (k-1), safe p q k]
和安全的定义如常。
我尝试通过启用优化来查看 GHC 的输出,但这太难理解了。
谢谢你。
你不需要只看核心。还有其他中间形式可能更有用。从文档:
使用调试标志 -ddump-simpl-stats 查看触发了哪些规则。如果您需要更多信息,那么 -ddump-rule-firings 会向您显示每个单独的规则触发,并且 -ddump-rule-rewrites 还会显示代码在重写之前和之后的样子
http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/rewrite-rules.html