From: Andrei Alexandrescu (andrewalex_at_[hidden])
Date: 2002-04-17 17:25:11
> > Lists have the "closure property" - they can represent any data
> > structure, no matter how complex, just not always efficiently. For
> > details you may want to consult SICP.
> The "not always efficiently" part of that sounds like sufficient reason
> to want to experiment with representing things in other ways.
I understand that. Reducing compilation times and consumed memory is a
concern that is as real as possible. I just believe that in the case of
metaprogramming, representing all compile-time compound data structures as
lists (much as Lisp does at runtime) and manipulating them as such is good
My opinion is that unlike runtime collections, type collections tend not to
grow to huge lengths. Often, types are ultimately created by people, so it's
not like you have tons of them. For those smaller lengths, I believe
Lisp-style lists are good, subject to improvements of some compiler
implementations. Now consider that you can represent any data structure you
want with Lisp-style lists. To me, the speed of compilation argument is weak
when made in favor of a complicated framework such as MPL.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk