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.