Crilly,
I used to program in LISP and had never heard of this, so I did some
checking. I think this is a misconception from the fact that numbers
were considered atoms and hence stored on the list of atoms. Instead
of just being a numeric value they consisted of an association list
(e.g. a list of atoms) containing a tag to indicate the value was a
number and another word with the value. The LISP I Programmers Manual
[1] gives an example:
-1 => (MINUS . (ASSOC NUMB FLO (1.0)))
(In fact LISP I (1960) only supported floating-point numbers, LISP
1.5 (1961) supported both integers & floats. [2])
As a result of storing values in an association list arithmetic
routines had to do several memory references to obtain the numeric
value.
In a paper on the "History of Lisp" John McCarthy [3] discussed this
writing that "Numbers were originally implemented in LISP I as lists
of atoms, and this proved too slow for all but the simplest
computations. A reasonably efficient implementation of numbers as
atoms in S-expressions as made in LISP 1.5, but in all the early
LISPs, numerical computations were still 10 to 100 times slower than
in FORTRAN."
Later versions of LISP [4] used better tagging schemes for numbers
and were able to produce compiled code that was as fast (or faster)
then C or FORTRAN.
Finally LISP early on had bignums to compute using arbitrary-
precision integers (similar to Java's BigInteger). Useful if you
needed to compute factorial of 1000 exactly.
-- Ron --
1. http://community.computerhistory.org/scc/projects/LISP/book/LISP%
20I%20Programmers%20Manual.pdf
2. ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-024.pdf
3. http://www-formal.stanford.edu/jmc/history/lisp.ps
4. http://doi.acm.org/10.1145/1086803.1086804
On Apr 7, 2007, at 12:54 PM, Chrilly wrote:
Up to my knowledge the first Lisp Versions had no number system.
The number n was represented as the list of numbers from 1 to n
(which is also the mathematical/axiomatic definition of the natural
numbers).
But its not very practical. Can anyone provide me with a link how
this was done. I am speaking some computer languages, but Lisp is
not among them.
I want to present the code in an article for the Austrian AI-
Journal (as an example that mathematical elegance and practically
usefull are 2 different things).
Chrilly
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/