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 <davidleothomas@gmail.com>wrote:
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 <radical@google.com> 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