scanlを使ったフィボナッチ数列
fib = scanl (+) 1 (0:fib)
allを使った最大値を求める関数
以前の例。
max_value ns = head [x | x <- ns, and $ map (\ n -> x >= n) ns]
all関数を使って。
max_value ns = head [x | x <- ns, all (\ n -> x >= n) ns]
日本語で書くと「nsの要素のうち、nsの要素nのすべてに対してx>=nとなる要素x、のリスト、の最初の値」といったところでしょうか。