Haskell勉強会 実践編#2に参加した
Haskell勉強会 実践編#2に参加した。
最近、あまり参加できてなかったので久しぶりの勉強会だ。
持ち物にHaskell処理系の入ったMacまたはPCという事で、どうやらMacとPCは別物らしい。Macは持ってないのでPCで参加する事にした。
参加者はやや少なめで5人だけ。Haskellブームも去ったというところか。
まぁ日曜の朝9時から昼の12時までという時間帯のせいもあると思う。
本日の内容はHaskellを使って参加者それぞれのペースで、ただひらすらProjectEulerを解いていくというもの。
成果としては何問か解いた後、Problem14の解がわからずに時間終了。
勉強会の帰りの電車の中でも考えてみたが、どうしてもStackOverFlowになってしまう。
この問題とHaskellは非常に相性が悪そう。他の言語ならすぐに答えを見つけられた。
とりあえずオーバーフローは起こさないがもの凄く遅い以下のコードを今から走らせてみよう。
明日の朝には答えが出てるかもしれない。
import Data.List col :: Int -> [Int] col 1 = [1] col n |even n = n: col (div n 2) |otherwise = n: col (n*3+1) p14 = foldl (\m n -> max m ((length.col)n)) (1) [1..1000000-1] main = do print p14
主催のid:ujihisaさん、参加された皆さんお疲れ様でした。
追記(2009/3/9)
朝になっても処理が終わってなかったので、強制終了しました。
アルゴリズムを見直して改めて再挑戦したい。