今年の夏にふと始めて1問目からちびちび解いてきたHaskellでプロジェクトオイラー、20問目突破!
-- 横一列の連続する4つの数字の積の最大値を取得 maxLineProd :: Integer maxLineProd = maximum $ map (\line -> (maximum . map product . (!! 4) . transpose . map inits . tails) line) gridこんな形。
map (\line -> f line) grid
は line 変数を使用せずに map f grid
と書けるのでmaxLineProd = maximum $ map (maximum . map product . (!! 4) . transpose . map inits . tails) gridさらに各行の maximum のリストを作ってからそのリストの maximum を取って最終的な値を求めているところを
maxLineProd = maximum $ map product . (!! 4) . transpose . map inits . tails =<< gridこうなった。