Programming style (or: too clever by half?)
Graham Klyne
gk at ninebynine.org
Wed Nov 12 14:54:32 EST 2003
I just spotted a possible idiom for something that seems to pop up from
time to time:
foldr const
But I can't help feeling that this code is perversely obscure.
Does it have any advantages over the more obvious form suggested below?
[[
headOrSomething = foldr const
headOrSomething1 _ (x:_) = x
headOrSomething1 x [] = x
h = headOrSomething
-- h = headOrSomething1
test1 = h 0 [1,2,3] == 1
test2 = h 0 [] == 0
test3 = h 0 (repeat 42) == 42
]]
This suggests, e.g., an alternative coding of Maybe.listToMaybe:
[[
altListToMaybe = foldr (const . Just) Nothing
]]
Opinions?
#g
------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact
More information about the Haskell-Cafe
mailing list