Haskell 初心者は括弧ばかりの Lisp のようなコードを書く。中級者になると、($) が多くなる。上級者(言い過ぎか?)になると、($) が消えて、(.) が多くなる。この記事では、上級者になるコツをちょっと教えちゃおう。 括弧だらけのコード では、以下の例について考えよう。 foo p xs = sum (filter p (map (+1) xs)) 括弧が多くて、いかにも初心者が書いたコードだ。foo は、以下のように動く。 foo even [1..6] → 12 ($) を使う では、括弧を ($) に置き換えてみよう。そうするには、一番右側にある閉じ括弧を消して、対応する開き括弧を ($) に置き換えればよい。だからこうなる。 foo p xs = sum $ filter p $ map (+1) xs だいぶ見やすくなった。 (.) を使う map (+1) xs