文字列の先頭と末尾にあるスペースの削除
30分プログラム、その614。文字列の先頭と末尾にあるスペースの削除 via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_174。
元のやつでは、正規表現による文字列置換をしてるけど、ここではdropWhileを使ってみた。別に正規表現が嫌いという分けじゃなくて、こっちのほうが手軽なだけ。
あと、特に意図はしてないけど、ポイントフリースタイルになった。やったね。
使い方
$ echo "\t test \t " | od --format=a 0000000 ht sp t e s t sp ht sp nl 0000012 $ echo "\t test \t " | ./trim | od --format=a 0000000 t e s t sp ht sp nl 0000010
ソースコード
import Test.HUnit.Base import Test.HUnit.Text ltrim :: String -> String rtrim :: String -> String trim :: String -> String ltrim = reverse.rtrim.reverse rtrim = dropWhile (\x -> x == ' ' || x == '\t') trim = rtrim.ltrim main = interact trim -- check test1 = "foo \t" ~=? rtrim "\t foo \t" test2 = "\t foo" ~=? ltrim "\t foo \t" test3 = "foo" ~=? trim "\t foo \t" check = runTestTT $ TestList [test1,test2,test3]