
At 15:28 03/08/04 +0100, MR K P SCHUPKE wrote:
f (case xs of (x:_) -> x; [] -> error "whoops") -- direct style
Yup, this is how I do it... I never use head!
As a general principle, this bothers me. In the longer term (i.e. if and when large-scale production Haskell systems become common), and as a matter of principle, I think it's better to use a prelude (or standard) function when one will do the job, because a widely-used "industrial strength" compiler might well have special knowledge of these and be able to apply special optimizations (as, e.g., some C/C++ compilers do for standard library functions like memcpy). As for head, I think it's fine that it throws an error because it is specified to be defined for only non-empty lists. (I remain silent on whether the prelude should contain a head-like function that returns a value for empty lists.) #g ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact