From: skaller <sk...@us...> - 2004-08-22 15:15:14
|
On Sun, 2004-08-22 at 14:39, Jesse Guardiani wrote: > Dustin Sallings wrote: > > > > > On Aug 21, 2004, at 20:49, Jesse Guardiani wrote: > > > >> I thought about doing that, but type t really does > >> serve a purpose. For example, you can't find the > >> head without it, and you can't have an empty list > >> without it. > > > > Head is relative. It's the part you're holding. :) > > I think there needs to be a definite head. > > > > Empty can be a node option or similar. > > Well, I like the concept of a node-only list, but I don't > think it works. You've got to have a head, so how are we > going to represent that? no you don't got to have a head .. why should you? Ordinary functional singly linked lists don't: type 'a list = Empty | Cons of 'a * 'a list where's the head? Its the pure, recursive, structure here that makes lists useful. The thing with a dlist node type is that the operations are more general than you'd like *sometimes*. For example, you can make a circular list. Hey, you can do that with ordinary lists too! [with -rectypes or Obj.magic ..] -- John Skaller, mailto:sk...@us... voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net |