大文字・小文字の反転(その1)
[id:mzp:20090804#invert]
変換関数を直接作るなら,こんな感じかな.
import Control.Arrow lowers = ['a'..'z'] uppers = ['A'..'Z'] exFun :: Eq a => (a,b) -> (a -> b) -> a -> b exFun (x,y) f x' = if x == x' then y else f x' invertChar :: Char -> Char invertChar = foldr exFun id $ zip lowers uppers ++ zip uppers lowers invertString :: String -> String invertString = map invertChar