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"
”リストの先頭”は常にあるんだから当然だよな。