練習問題

標準入力の'a'と'A'を入れ替えるコマンドの作成。

main = do cs <- getContents
          putStr $ changea cs

changea :: String -> String
changea cs = map swapa cs

swapa :: Char -> Char
swapa 'a' = 'A'
swapa 'A' = 'a'
swapa c = c

このように作りました。回答例を見てみるとswapaについては同じでしたが、回答例では上記のchangeaに相当する関数はなく、mainのputStrの引数にmap swapa csを指定していました。

練習問題だからとか紙面の関係でという背景があるかもしれませんが、個人的には関数化する方が好きです。メリットはいくつかありますが、特に「処理に名前を付けられる」というのが嬉しいところ(changeaが良い名前かというとそうでもないですけど)。