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

Arg cont checking, optionals, keywords, etc



Common Lisp has already developed a keyword argument syntax, so that
"optionals" may be passed in random order.

Until one actually gets down to implementing that proposal, he may be
frightened away by the thought that it would unduly slow down the
function calling protocol.  I don't think it does (slow the vanilla
case down), but am not inclined to elucidate over network mail.

A major problem for Interlisp-D is, however, the backwards compatiblity
question.  Whereas it may be quite all right to take a function, say,
  (DEFINEQ (FOO (A B C) ...]
and redefine it like
  (DEFINEQ (FOO (&OPTIONAL A B C) ...]
and, I think, even suffer no slowdown.  But what if you really wanted
  (DEFINEQ (FOO (A B &OPTIONAL C) ...]
Then a lot of code may have to be re-written (or perhaps massaged
mechanically) so that calls like (FOO 3) become (FOO 3 NIL).  The
benefits of arg count checking won't be realized without breaking some
already running code.

-- JonL --