Problem 5

問題文(Project Euler - PukiWikiより)

2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり、そのような数字の中では最小の値である。

では、1 から 20 までの整数全てで割り切れる数字の中で最小の値はいくらになるか。

自分が書いた答え
answer5 = f [1..20]

f :: [Int] -> Int
f [x]		= x
f (x:xs)	= lcm x (f xs)

最初、Intリストの最小公倍数を返す関数を自分で実装しようとして四苦八苦した。lcmで簡単に書けることに気づいてこうなった。しかし、foldl1を使えばもっと簡潔に書けると知り勉強中。
それにしても、ふつけるで紹介されていない関数を使えないのは良くない。次の本を読みたいところ……