[math-fun] Property lists on INT's and FLONUM's ???
I just came across the 1960 "Lisp 1 Programmer's Manual", which I'd never seen before: http://history.siam.org/sup/Fox_1960_LISP.pdf As this manual clearly describes, both integers and floats had _property lists_ and were _uniquized_. Q: When did Lisp numbers lose their property lists ? Q: Did any other Lisps keep property lists for numbers ? Q: Were Lisp property lists ever used for interesting things: e.g., storing primality, factors, etc. ? Q: Also, who is "K. Maling", who is credited with writing the Lisp 1 READ function ? --- My notes from the above manual: Note that in the original Lisp 1, _integers had property lists_ !!! This must have required that integers be INTERN'ed, although the Lisp 1 manual doesn't mention INTERN or OBLIST at all (INTERN/OBLIST apparently arrived with Lisp 1.5). "On the association lists for integers the indicator INT points to the integral value. The integral value is given as a full machine word with the value pushed to the right-hand end of the register." In Lisp 1, _floating point numbers had property lists_ !!! "Floating-point numbers are listed in a separate list. A floating-point number is put on this list either as it is read in or _as it is generated within a calculation_. _Neither this list nor the list of atomic symbols has any duplications._ An association list is created for a floating-point number when the number is put on the list of numbers." "Only _positive_ numerical values are put on the association lists for floating-point numbers; if a number is negative the association list for the number is preceded by the indicator MINUS, and the entry in the list of floating-point numbers points to the MINUS indicator." The representations of the integers +1.0 and -1.0 are given on page 92. In modern notation, the property list of +1.0 is '(NUMB FLO (1.0)), and -1.0 is the list '(MINUS +1.0). Floating point numbers only acquired a 'PNAME' (print name) when they were first printed out. Apparently, only positive floats existed as atoms; negative floats were the list `(MINUS ,num). The representation of the integer 1 is given on page 94 of the Lisp 1 manual. In modern notation, the property list of +1 is '(PNAME ("1") INT 1 APVAL (1)). --- Interesting _builtin_ capabilities for 1960 Lisp 1: gensym() !! It isn't mentioned, but I presume that these symbols were uniquized. compab(x,y,z) = |x-y|<z, where x,y,z are all floats. diff(y,x) "The function diff differentiates the algebraic expression y with respect to x. ... Gradients must be provided on the association lists of all the functions used in the expression y, except for PLUS and TIMES." matrixmultiply(x,y). In modern notation, x = '(matrix (row a11 a12 a13) (row a21 a22 a23) (row a31 a32 a33)) y = '(matrix (col b11 b21 b31) (col b12 b22 b32) (col b13 b23 b33)) Curiously, there wasn't a builtin transpose operation. Even modern Common Lisp, with all of its other bloat, doesn't have matrix multiplication built in!
I just came across the 1960 "Lisp 1 Programmer's Manual", which I'd never seen before: As this manual clearly describes, both integers and floats had _property lists_ and were _uniquized_.
Q: When did Lisp numbers lose their property lists ? Q: Did any other Lisps keep property lists for numbers ? Q: Were Lisp property lists ever used for interesting things: e.g., storing primality, factors, etc. ?
I had Lisp in a programming course as a freshman in 1961 and began programming seriously in Lisp under Roland Silver in 1965. I do not recall property lists on numbers. I suspect it was a quick implementation hack for the first version and was eliminated in favor of some faster way of doing arithmetic. There was a detailed discussion of the development of Lisp at a fest colloquium held for McCarthy's 64th birthday. I cannot immediately put my hands on the festschrift but will see what I find when it turns up. Of the people mentioned, McCarthy and Silver are dead. Edwards retired from NSA and moved to the south to work with a company that translates the bible. Someone told me he was dead. I no longer think that is correct but I don't know how to locate him. Others on the list may be in contact with Steve Russel. David Luckham is here at Stanford unless he has moved. The others I do not recall. I would be inclined to ask Joel Moses who did a lot of work on the CTSS Lisp system in the late 1960s.
Q: Also, who is "K. Maling", who is credited with writing the Lisp 1 READ function ?
I don't know that either but there is no K. Maling in the MIT Alumni Register. There are three Malings through 1994 George C. Maling '53 Joan M. Maling '73 Walter H. Maling '69 The only K. Maling I find using Zabasearch is a Kathleeng Maling who is about sixty and thus too young. Whit
On 3/9/2013 3:25 PM, Henry Baker wrote:
Q: Also, who is "K. Maling", who is credited with writing the Lisp 1 READ function ?
According to the preface of the LISP 1.5 manual, he was Klim Maling. Some Googling turns up a photograph and a brief professional biography (from 1963) in the contributors section of an IEEE journal (PDF): http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=04038046 -- Fred W. Helenius fredh@ix.netcom.com
According to the preface of the LISP 1.5 manual, he was Klim Maling. Some Googling turns up a photograph and a brief professional biography (from 1963) in the contributors section of an IEEE journal
Must be: Klim Maling 301 N Roadrunner Pkwy Las Cruces, NM 88011 +1 575 522-8293 so he can be called and asked whatever the question was. Whit
participants (3)
-
Fred W. Helenius -
Henry Baker -
Whitfield Diffie