演算子とポイントフリースタイル

(++)でポイントフリーが使われているコードをみてよくわからなかったので試してみた。

Prelude> :t (++)
(++) :: [a] -> [a] -> [a]
Prelude> "a" ++ "bc"
"abc"
Prelude> (++ "bc") "a"
"abc"
Prelude> ("a" ++ ) "bc"
"abc"

ふ〜む。左からでも右からでもOKと。ポイントフリーに使うときは、

sayHelloTo :: String -> IO ()
sayHelloTo = putStr . ("Hello " ++)

sayHelloTo "World!"とすると、"Hello World!"と表示される。