capitalizE

Capitalize ならぬ capitalizE。字面どおり最後の文字だけを大文字に変える。
……いや,名前はともかく(っていうか,こんな動作に名前がついてるとは思えないが)。
toUpper や toLower を使うには Data.Char モジュールを import する。

 import Data.Char
 
 capitalizE []     = []
 capitalizE [c]    = (toUpper c):[]
 capitalizE (c:cs) = (toLower c):(capitalizE cs)

実行結果。

 *Main> capitalizE "Haskell"
 "haskelL"

OK。


で,Capitalize のほう。こうやったら全部大文字になった。

 capitalize []     = []
 capitalize (c:cs) = (toUpper c):(capitalize cs)
 *Main> capitalize "haskell"
 "HASKELL"

”リストの先頭”は常にあるんだから当然だよな。