Project Euler: Problem45
なかなか時間がかかっている…。
triangle = [n*(n+1) `div` 2| n <- [1..]] pentagonal = [n*(3*n-1) `div` 2| n <- [1..]] hexagonal = [n*(2*n-1)| n <- [1..]] loop :: [Int] -> [Int] -> [Int] -> [Int] loop (x:xs) (y:ys) (z:zs) | x == y && y == z = loop xs ys zs | x == minimum [x,y,z] = loop xs (y:ys) (z:zs) | y == minimum [x,y,z] = loop (x:xs) ys (z:zs) | z == minimum [x,y,z] = loop (x:xs) (y:ys) zs main = print $ loop triangle pentagonal hexagonal
あれ?"Non-exhaustive patterns in function loop"って言われた。なんでだろ。