引数が複数個の場合のポイントフリースタイル
複数個の引数をポイントフリースタイルで省略すると、.がひとつずつ増えていきます。こんな感じ。
module Main (main) where e n1 = n1 f n1 = n1 g n1 n2 = n1 + n2 h n1 n2 n3 = n1 + n2 + n3 hoge1 n1 = e $ f n1 hoge1' = e . f -- ポイントフリー(引数がひとつの場合) hoge2 n1 n2 = e $ g n1 n2 hoge2' = (e .) . g -- ポイントフリー(引数がふたつの場合) hoge3 n1 n2 n3 = e $ h n1 n2 n3 hoge3' = ((e .) .) . h -- ポイントフリー(引数がみっつの場合) main :: IO () main = do print $ hoge1 1 -- => 1 print $ hoge1' 1 -- => 1 print $ hoge2 1 2 -- => 3 print $ hoge2' 1 2 -- => 3 print $ hoge3 1 2 3 -- => 6 print $ hoge3' 1 2 3 -- => 6