文字列の両端の空白を削除する関数

RubyでいうところのString#stripです。何も考えずに素直に実装するとこうなりました。何とかreverseを消したいところ。うーむ。

module Main (main) where

import Data.Char (isSpace)

strip :: String -> String
strip = stripR . stripL
  where
    stripL = dropWhile isSpace
    stripR = reverse . stripL . reverse

main :: IO ()
main =  print $ strip "  \t\r\nhoge  " -- => "hoge"