括弧ゴルフ

本当にLispはカッコが多い? - 八発白中
Haskellは基本的には常に括弧なしでいけそうだねぇ.

import System.Environment
main = mapM_ putStrLn . map ppr . f . read . g =<< getArgs
f n = take n $ s zip fs $ enumFrom 1
g args = if null args then "1" else head args
s p q x = p x $ q x
fs = scanl1 mul
mul x y = x * y
ppr p = show m ++ "! = " ++ show n
  where
    m = fst p
    n = snd p