パターンマッチングの後,引数の具体的な値を条件に分岐したい場合には次のように書く。
| と = の間の分岐条件の部分をガード節という。
条件は上から順にチェックされる,でいいのかな。otherwise は「その他の場合」。
swapCase は文字列の中の大文字と小文字を入れ替える。アルファベットでないならそのまま。
import Data.Char swapCase [] = [] swapCase (c:cs) | isUpper c = (toLower c):(swapCase cs) | isLower c = (toUpper c):(swapCase cs) | otherwise = c:(swapCase cs)
*Main> swapCase "Haskell" "hASKELL" *Main> swapCase "03^-c,aa" "03^-C,AA"