練習問題 4.2.8
(:)のパターン照合を使って長さ2のリストのみ逆転し,それ以外のリストはそのままにするような関数
rev2を定義せよ. 漏れがなく,重なりのないパターンになるようにすること.
rev2 :: [a] -> [a]
rev2 xs@[] = xs
rev2 xs@(_:[]) = xs
rev2 xs@(_:_:[]) = reverse xs
rev2 xs@(_:_:_:_) = xs
(:)のパターン照合を使って長さ2のリストのみ逆転し,それ以外のリストはそのままにするような関数
rev2を定義せよ. 漏れがなく,重なりのないパターンになるようにすること.
rev2 :: [a] -> [a]
rev2 xs@[] = xs
rev2 xs@(_:[]) = xs
rev2 xs@(_:_:[]) = reverse xs
rev2 xs@(_:_:_:_) = xs