【发布时间】:2015-04-20 15:48:27
【问题描述】:
这是这个问题的延伸:Haskell replace characters in string
我想调整以下表达式以将字符替换为字符串
let replaceO = map (\c -> if c=='O' then 'X'; else c)
最后,我会得到以下结果(XX可以是任意长度的字符串):
replaceO "HELLO WORLD"
"HELLXX WXXRLD"
【问题讨论】:
-
您将无法仅使用
map执行此操作,请查看concat并考虑(\c -> if c == 'O' then "X" else [c])。请注意,每个字符都变成了一个字符串。 -
这看起来很有希望,但它是否适用于这样的事情:map (\x -> if x
elemguesses then x else '-') word -
你到底想做什么?您在此处的评论需要更多上下文才能充分理解。如果您尝试用另一个字符替换某些字符,那么您需要
map。如果您尝试用新字符串替换某些字符,请使用concatMap。
标签: string haskell replace char