[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hierarchical lists, again
> while leaving the default shell mostly bare
(pardon me for just quoting the part of your note which, for me, forms
the kernel of the argument. everything else is just implementation.)
i agree with this, but ``mostly bare'' is in the eye of the beholder.
for me the criteria has generally been:
cultural compatibility with rc is in -- why rc? because,
despite its lack of ``market share'' and relative newnews,
it is the paradigmatic unix shell. its feature set is
almost minimal for useful shells, and that made it a good
example to follow on which features to include. only two
things i can think of (off the top of my head) were changed
gratuitously from rc: the addition of the \-escapes, and
the change from pairwise to cross-product concatenation.
meta-constructs are in -- that is, things which are useful
or needed for implementing some es features as functions in
initial.es rather than primitives are in, especially if
they are generally applicable.
basic constructs for manipulating es's data -- for example,
catch and throw are new constructs for a shell, but necessary
to make es work. (lambda is more fundamental than this,
i guess, but w/o it, it's not es.) some dubious things
have crept in here, because i wanted them to be uniform
across machines: unwind-protect, forever, result, true,
false.
everything else is presumed out, though there certainly are exceptions.
i'd put Harald's wrap function into the third category, and maybe
also the second.
paul