
Yeah, I guess I was wondering whether something like it already existed.
Thinking about it some more, perhaps what I want is `tr` [1]. E.g.
tr [Foo] [Bar]
Incorporating your suggestion would then yield a more general version like:
trBy (== Foo) Bar
[1] http://en.wikipedia.org/wiki/Tr_(Unix)
On Sat, Dec 22, 2012 at 6:46 AM, David Thomas
Seems like the function is easy to define:
replaceIfEq a b c = if c == a then b else c
Then the above can be written
replaceIfEq Foo Bar value
Or the slightly more general (in exchange for slightly more verbosity at the call site)
replaceIf p r a = if p a then r else a
replaceIf (== Foo) Bar value
On Fri, Dec 21, 2012 at 6:46 PM, Radical
wrote: Sometimes I'll need something like:
if value == Foo then Bar else value
Or some syntactic variation thereof:
case value of { Foo -> Bar; _ -> value }
Is there a better/shorter way to do it? I'm surprised that it's more complicated to substitute a value on its own than e.g. in a list, using filter. Or perhaps I'm missing the right abstraction?
Thanks,
Alvaro
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe