[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: T compatibility with UCI LISP

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,

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.)