THURSDAY  JAN 26,1978  FM+2D.9H.23M.18S.  LISP 472  -GLS, HIC, JONL-

THINGS WE WOULD LIKE TO KNOW:
[A] INPUT/OUTPUT BASES DEFAULTING TO DECIMAL
[B] FUNCTION CELLS
[C] ERROR HANDLING
[D] DOTS IN DOTTED PAIRS REQUIRING A SPACE ON BOTH SIDES

CHANGES THAT AFFECT ALL VERSIONS:
[1] NEW SYNTACTIC CONSTRUCT: CASEQ
[2] *RSET DEFAULT IS NOW T
[3] CONS IS NOW AN LSUBR (!)
[4] LIMITATION ON LENGTH OF VALRET STRINGS HAS BEEN REMOVED

CHANGES THAT AFFECT SAIL VERSION:
[!] VALRET WILL NOW DO A PTLOAD, TO LOAD ARGUMENT INTO LINE EDITOR
--------------------------------------------------------------------
PLEASE ANSWER THE FOLLOWING QUESTIONS IF YOU FEEL THEY HAVE A
BEARING ON YOUR ACTIVTIES BY SENDING MAIL TO BUG-LISP:
[A] SHOULD THE DEFAULT BASE FOR INPUT AND OUTPUT BE DECIMAL?
    IF SO, WHAT SHOULD BE USED FOR AN OCTAL 'POINT'?

[B] WE ARE CONSIDERING IMPLEMENTING 'FUNCTION CELLS'.  THESE WOULD
    HOLD THE FUNCTIONAL PROPERTIES OF AN SYMBOL.  THIS CHANGE WOULD
    REMOVE THE ABILITY TO USE PUTPROP/DEFPROP/GET TO HACK FUNCTIONAL
    PROPERTIES.  SUGGESTIONS ARE SOLICITED.

[C] WE ARE ALSO CONSIDERING IMPROVING THE ERROR HANDLING FACILITIES
    AND WOULD APPRECIATE INPUT ON THE TYPES OF THINGS THAT ARE
    DESIRED.

[D] SHOULD THE DOT IN DOTTED PAIRS *REQUIRE* A SPACE ON EACH SIDE?
    IF NO SPACE WAS PRESENT THE DOT WOULD BE CONSIDERED EITHER A
    DECIMAL POINT OR PART OF A SYMBOL.

THE FOLLOWING APPLY TO ALL SYSTEMS:
[1] THERE IS A NEW TYPE OF CONDITIONAL NAMED 'CASEQ'.

    (CASEQ <KEY>
           (<KEY-SET> E1 E2 ... EN)	;CLAUSE 1
           (<KEY-SET> E1 E2 ... EN)	;CLAUSE 2
	       ...
	   (<KEY-SET> E1 E2 ... EN))	;CLAUSE M

    <KEY> MUST EVALUATE TO EITHER A SYMBOL OR A FIXNUM.
    ALL OF THE KEYS IN THE KEY-SETS MUST BE OF THE SAME TYPE,
    EITHER SYMBOL OR FIXNUM, AND <KEY> MUST BE OF THIS SAME TYPE
    ALSO.
    <KEY-SET> IS EITHER THE ATOM T, A RANDOM ATOM (SYMBOL OR FIXNUM),
    OR A LIST OF ATOMS (SYMBOLS OR FIXNUMS).  IF IT IS THE ATOM T,
    THE EXPRESSIONS FOLLOWNG IT ARE EVALUATED UNCONDITIONALLY.
    THIS SHOULD OCCUR ONLY IN THE LAST CLAUSE, IF AT ALL.
    IF <KEY-SET> IS A SINGLE ATOM (OTHER THAN T), THEN IF IT MATCHES
    <KEY> THE FOLLOWING EXPRESSIONS ARE EVALUATED.  IF A LIST OF ATOMS
    IS PRESENT, THEN EACH ATOM IS MATCHED AGAINST <KEY> AND THE
    EXPRESSIONS ARE EVALUATED IF ANY ATOM MATCHES.  THE ATOMS IN THE
    <KEY-SET> ARE NEVER EVALUATED.  "MATCHING" MEANS EQ FOR SYMBOLS
    AND = FOR FIXNUMS.
    THE VALUE OF CASEQ IS THE VALUE OF THE LAST EXPRESSION EVALUATED
    IF A MATCH IS FOUND, ELSE NIL.
    IT IS NOT USEFUL FOR A GIVEN KEY TO APPEAR MORE THAN ONCE AMONG
    ALL THE KEY-SETS OF A SINGLE CASEQ.  THE IDEA OF CASEQ IS TO
    PROVIDE A DISPATCHING CONSTRUCT.  A "T-CLAUSE" PROVIDES AN
    "ELSE" CASE FOR WHEN NO EXPLICITLY GIVEN KEYS MATCH.
    EVENTUALLY WE HOPE THAT CASEQ ON FIXNUMS, AT LEAST, WILL COMPILE
    ESPECIALLY WELL, INTO A KIND OF FORTRAN-STYLE COMPUTED GOTO.

[2] THE DEFAULT VALUE OF *RSET IS NOW T.

[3] CONS IS NOW AN LSUBR.
    (CONS A B C D) <==> (CONS A (CONS B (CONS C D)))
    (CONS A) <==> A
    IN OTHER WORDS, IT RIGHT-ASSOCIATES.
    (CONS A B C D NIL) = (LIST A B C D), BUT ON THE LISP MACHINE
    THEY MAY HAVE DIFFERENT CONNOTATIONS WITH RESPECT TO STORAGE
    ALLOCATION.

[4] THE LIMITATION ON THE LENGTH OF VALRET STRINGS HAS BEEN REMOVED
    FOR ALL PRACTICAL PURPOSES.

[!] IN SAIL VERSION, VALRETTING A STRING NOW LOADS THE STRING INTO
    THE LINE EDITOR VIA PTLOAD.