On Fri, Mar 27, 2009 at 9:51 PM, Jason Dusek <[email protected]> wrote: > 2009/03/27 John Lato <[email protected]>: >> From: Jules Bean <[email protected]> >> > wren ng thornton wrote: >> > > The type of head should not be [a] -> a + Error, it should >> > > be (a:[a]) -> a. With the latter type the compiler can >> > > ensure the precondition will be proved before calling >> > > head, thus eliminating erroneous calls. >> > >> > Yes, but you know and I know that's not haskell. >> > >> > I'm talking about haskell. >> > >> > In haskell - a language which does not fully support >> > dependent types - head is both necessary and useful. >> >> I could follow the rest of this, but I don't understand why >> 'head' is necessary. Couldn't you always replace it with a >> case statement, with undefined on [] if necessary? > > How would that be any different from head? >
That's what I'm asking. It was claimed that 'head' is a necessary function, but I don't see why. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
