tphyahoo wrote:
So the core question (speaking as a perler) is how do you write
my $s= 'abcdefg';
$s =~ s/a/z/g;
$s =~ s/b/y/g;
print "$s\n";
in haskell? There are various haskell regex libraries out there,
But that's such a perler attitude. When all you have is a regex,
everything looks like a s///!
This really doesn't look like much of a regex question to me. A more
haskelly answer might be as simple as:
m 'a' = 'z'
m 'b' = 'y'
m x = x
test1 = map m "abcdefg"
...which is general in the sense that 'm' can be an arbitrary function
from Char -> Char, and avoids the 'overlapping replace' behaviour
alluded to elsewhere in this thread, but is limited if you wanted to do
string-based replacement.
To do string-based replacement you do have to think careful about what
semantics you're expecting though (w.r.t. overlapping matches, repeated
matches, priority of conflicting matches).
Jules
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe