npo*_*cop 14 command-line haskell ghc
我有以下程序:
data Peano = Zero | Succ Peano deriving (Show)
add Zero b = b
add (Succ a) b = add a (Succ b)
mul Zero b = Zero
mul (Succ a) b = add b (mul a b)
four x = let two = Succ (Succ Zero) in mul two two
Run Code Online (Sandbox Code Playgroud)
我想从GHC得到这样的东西:
add =
\ ds b ->
case ds of
Zero ->
b
Succ a ->
add
a
(Succ b)
mul =
\ ds b ->
case ds of
Zero ->
Zero
Succ a ->
add
b
(mul a b)
four =
let
two =
Succ
(Succ Zero)
in
mul two two
Run Code Online (Sandbox Code Playgroud)
我设法得到的最好的是
ghci -ddump-simpl -dsuppress-module-prefixes -dsuppress-uniques foo.hs
Run Code Online (Sandbox Code Playgroud)
但是钢铁需要大量人工移除GHC生成的东西来获得上面的代码.是否有GHC或第三方脚本进行清理的转换?
有没有办法至少摆脱case {tick (main:Main, 8)} @ (State# RealWorld) of _ { __DEFAULT ->
?
Don*_*art 22
你很幸运!这项工作有一个工具:ghc-core.
ghc-core使用命令行包装器包装ghc,该包装器在寻呼机中以人类可读的颜色方式显示GHC优化的核心和汇编输出.
用法 - 只需替换ghc
为ghc-core
:
ghc-core A.hs
ghc-core -fvia-C -optc-O3 A.hs
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2573 次 |
最近记录: |