[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: T compatibility with UCI LISP
- To: T-Discussion at YALE
- Subject: Re: T compatibility with UCI LISP
- From: Chris Riesbeck <Riesbeck at YALE>
- Date: Tue ,1 Sep 82 13:53:00 EDT
- In-reply-to: James R. Meehan <Meehan>, 1-Sep-82 1:35PM-EDT (Wed)
Meehan's comments seem to be a long-delayed response to Nix's original
call for "what should be in T?"
Specific suggestions about the MAP functions:
UCI LISP has 6 MAP functions. You get your choice of returning NIL,
consing, or splicing the results, and you can traverse either cars
of cdrs. T has MAP, which is equivalent to MAPCAR, and WALK, which
is very similar to MAPC.
Actually, the last release of T implemented MAPCDR, ANYCDR, WALKCDR,
and probably some others. I'm glad to see them, but the mapping forms
I prefer to write in make features, such as what's returned and is
it heads or tails of lists, separate syntactic markers, rather than
part of a unitary name Jim's suggestion of (FOR (.. ON ..) ...) and
Drew's various mapping-macros (too bizarre for me to describe) fall
into my preferrred class. Also, see Jonathan's worries in an old
T-Discussion about the namespace blow up with things like MEM, MEMQ,
MEM?, MEMQ? ASS, ASSQ, ASS?, etc. They also could use a non-namespace
wasting syntax.
My candidates for UCI LISP functions that are useful enough to put
into T, with suitable modifications (e.g., stream parameters):
NEWSYM & friends, READLIST, PRINA & friends, ERRSET, FSCNT & friends,
GETDEF, UNION & friends, TCONC & LCONC, LINEREAD, NODUPLES, SORT,
REPEAT, LSUBST, SUBLIS, TIMER.
TIMER is probably PIG, with additions. Is GETDEF as important when
you have multiple windows and can plop something from an edit pad into
a core image? I only used GETDEF to save loading a big file I had
just edited. I never used it in a start-up file because it made the
start-up file too dependent on not changing details in the sources
(e.g., (GETDEF ... FOO) fails if a new implementation of FOO requires
some subfunction in the same file -- DSKIN (or LOAD) will still work.)
-------