文字の間にwを挟む関数
30分プログラム、その739。文字の間にwを挟む関数を書いてみました。
文字の間に文字を挟むだけなら、intersperseというずばりそのものの関数があります。が、今回は文字列を挟みたかったので自分で書きました。
あと、日本語の文字列(UTF8)を扱うためにutf8-stringパッケージを使ってます。
使い方
$ ./interperse ' w ' うはおけ う w は w お w け
ソースコード
import System import qualified System.IO.UTF8 as U import Codec.Binary.UTF8.String insertMid :: [a] -> [a] -> [a] insertMid _ [] = [] insertMid _ [x] = [x] insertMid sep (x:xs) = x:(sep ++ insertMid sep xs) main = do sep:s:_ <- getArgs U.putStrLn $ insertMid (decodeString sep) (decodeString s)