1
foo x y = x*x + y

fat x y = let xx = x*x in xx + y

bar x = \y -> x*x + y

baz x = let xx = x*x in \y -> xx + y

foo' = foo 2

fat' = fat 2

bar' = bar 2

baz' = baz 2

foo'fat'bar'、またはを繰り返し呼び出すと、baz'実行時のパフォーマンスが異なりますか? 基本的に、GHC がどのように値を保持し、いつ中間値を放棄するかに興味があります。句を使用すると、where置換すると異なる結果にletなりますか?

4

0 に答える 0