型シグニチャがあるなしで吐かれるアセンブリはどうかわるか?

hac a=a+1
と、
それに
hac::Int->Int
をつけたもので比べてみると、

  • rw-r--r-- 1 ioriveur ioriveur 2126 2011-09-22 19:02 test.s
  • rw-r--r-- 1 ioriveur ioriveur 1176 2011-09-22 19:02 testint.s

と、俄然短くなる。行数で比べると119と64の差である。
ちなみにCでは

  • rw-r--r-- 1 ioriveur ioriveur 385 2011-09-20 18:28 tester.s

となった。(cf.前回の記事)

さて、Haskellの関数は値を返す関数ではなく、サンクを返すものである。
であるから、返り値がレジスタに乗るのではなく、スタックにつまれるはずである。

ということは、サンクをつんでいそうな辺りを探そう。

とりあえず、今はここまで。