F# で Project Euler 26 を解いたら遅かった

問題はこれ : Problem 26

● F# での解答

何故か遅い。うちの環境だと 15秒以上かかる。
ideone.com で試したらやはり同じくらいかかっているようで、タイムアウトでプロセスを kill されてた。
recurringLength に 再帰回数が大きくなるような引数*1を与えると処理に時間がかかっているのがわかる。でも具体的な原因はよくわからない。

Clojureでの解答

ほぼ同じアルゴリズムClojure にも移植してみた。こちらは一瞬で答えがでる。ideone.com では処理時間 0.88 sec でした。

● F# のコードを改良しました

こちらのエントリを御覧下さい

*1:大きい値と言ってもせいぜい数百回なんですけどね...