I want to replace a string from an input file with a different string. I was searching for a method but it seems i can only alter the string character by character. For example
You can use Data.List.Utils replace, it's lazy and you can process a big file with some like:
main = getContents >>= putStr . replace "sourceString" "destinationString"
That's all!
A possible replace function could be
rep a b s@(x:xs) = if isPrefixOf a s
-- then, write 'b' and replace jumping 'a' substring
then b++rep a b (drop (length a) s)
-- then, write 'x' char and try to replace tail string
else x:rep a b xs
rep _ _ [] = []
another smart way (from Data.String.Utils)
replace :: Eq a => [a] -> [a] -> [a] -> [a]
replace old new l = join new . split old $ l