ガード節

パターンマッチングの後,引数の具体的な値を条件に分岐したい場合には次のように書く。

と = の間の分岐条件の部分をガード節という。

条件は上から順にチェックされる,でいいのかな。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"