constant space `minimum'
Simon Peyton-Jones
simonpj at microsoft.com
Wed Sep 29 09:43:45 EDT 2004
| I meant that the implementation like
|
| minimum [x] = x
| minimum (x:y:xs) = if x > y then minimum (y:xs)
| else minimum (x:xs)
It would be great if this was the defn of minimum in the Report. But it
isn't.
Consider
data T = T1 | T2
instance Ord T where
min x T2 = T2
min x y = error "urk"
Now try
minimum [T1,T2,T2]
your defn gives "urk", but the Report gives T2.
Stupid, I know, but that's what it says.
So the best thing seems to be to give monomorphic instances of minimum
for types where we know the instances!
Simon
More information about the Glasgow-haskell-users
mailing list