如何用字符串中的多个字符替换字符.我可以用下面的字符替换另一个字符:
replaceO [] = []
replaceO (x:xs) =
if x == '('
then '\n' : replaceO xs
else x : replaceO xs
Run Code Online (Sandbox Code Playgroud)
但是我想用'\'替换'\n\t\t',而不只是'\n'.
---------- UPDATE --------------根据下面的答案,我可以使一个函数接受一个字符串并返回一个这样的字符串:
ReplaceFun str :: String -> String
ReplaceFun str = do
concatMap (\str -> if str == '.' then "foo" else [str])
Run Code Online (Sandbox Code Playgroud)
这不起作用,有人能指出我的错误吗?我是Haskell的新手.
这是我对嵌套缩进的看法:
replaceO (x:xs) n l =
if x == '('
then "\n" ++ (showTabs n "-") ++ replaceO xs (n + 1) 'l'
else
if x == ')'
then "\n" ++ (showTabs …Run Code Online (Sandbox Code Playgroud)