[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