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

September version of object-creation (More nits)

    Date: 23 Sep 87  2202 PDT
    From: Dick Gabriel <RPG@SAIL.STANFORD.EDU>

    In 87-002, we have tried to use the term ``parameter'' to refer to the
    thing that appears in a lambda-list and ``argument'' to refer to the thing
    that gets passed to the lambda-expression. In the writeup of initialization,
    we (that is, whoever writes it) ought to be careful to keep this
    disctinction in mind. I think it is ok to call the things :initargs and
    the like if we are careful.

Agreed completely.  In the latest version I mailed out, I made some
effort to straighten this out, however I think additional effort is
likely to be needed.

I just re-read CLtL pp.61-3.  The stickiest terminological problems in
my writeup have to do with finding replacements for CLtL's terms "keyword
parameter" and "keyword name" that don't contain the word "keyword".  CLtL
uses "keyword name" in connection with both arguments and parameters, so
you can see where my attempt to substitute "named-argument name" runs into

Do you think it would be worth trying a version of the writeup that uses
CLtL's terminology, with a simple admonition that a "keyword name" is not
necessarily a keyword symbol?  After all, CLtL also has "lambda list keywords",
so maybe "keyword" in Common Lisp means "any symbol that identifies a syntactic
position" rather than "(eq (symbol-package symbol) (find-package 'keyword))".

I surveyed the writeup and it looks like the changes would be these:

named argument -> keyword argument
named argument name -> keyword name
"initarg name" remains unchanged
named-parameter name -> keyword parameter specifier's keyword name
  (wordy, but CLtL doesn't seem to use a shorter term for this)
  (returns a list of keyword names, not parameter specifiers)