2014-09-21から1日間の記事一覧

GHCの末尾再帰最適化をCore上で確認してみる

まず簡単に再帰関数(factorialとした)を、 非末尾再帰呼び出し(fac1) 末尾再帰呼び出し(fac2) で記述した。 fac1 0 = 1 fac1 n = n * fac1 (n-1) fac2 n = fac' 1 n fac' acc 0 = acc fac' acc n = fac' (acc*n) (n - 1) main = do print $ fac1 35 print $ …