
On 1/4/07, brad clawsie
lets say i have a string
s = "abcdefg"
now i have two lists of strings, one a list of patterns to match, and a list of replacement strings:
patterns = ["a","b"] replace = ["Z","Y"]
from which my intent is that "a" be replaced by "Z", "b" by "Y" etc
now using the replace function from MissingH.Str (which i know is now renamed), i wish to apply replace to s using (pattern[0], replace[0]), (pattern[1], replace[1])...(pattern[N], replace[N]).
You can create the replacing functions using zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] (from the Prelude) as follows: replacers = zipWith patterns replace You then need to apply these functions to your starting string s. I would probably use foldr for that, something like this: foldr ($) s replacers Where ($) performs function application. As Neil points out, if your replacements overlap, this could cause replacement text to itself be replaced. /g -- It is myself I have never met, whose face is pasted on the underside of my mind.