4 ms·
Facepalm. Numerical Tower is Scheme's invention. It is one of Scheme's distinct features and a major innovation of that time. R5RS, which is considered the cl
by dschiptsov 12y ago
Facepalm.
Numerical Tower is Scheme's invention. It is one of Scheme's distinct features and a major innovation of that time.
R5RS, which is considered the classic Scheme (some would even say R4RS) has only Strings and Vectors as an ADTs with such convention of naming procedures. It amounts for just one page of the standard. And, of course, not these two types is the essence of Scheme.
Also Scheme precedes CL, which incorporates Numerical Tower from Scheme.
- coldtea 12y agoOnly he doesn't talk about Numerical Tower related features, but about how the numbers types are used.
- dschiptsov 12y agoExactly. The whole point of the Numerical Tower is in avoiding of such types, and using generic procedures and implicit coercion instead.
- deleted 12y ago[deleted]
- Confusion 12y agoOnce again you point out how someone is obviously a fool who doesn't know what he is talking about. Once again you completely miss the fact that he is actually quite knowledgeable and you have failed to read the post while giving the author sufficient credit to actually get his point. You probably don't realize how incredibly arrogant and condescending you seem.
- lispm 12y ago> It is one of Scheme's distinct features and a major innovation of that time. Is it? > Also Scheme precedes CL, which incorporates Numerical Tower from Scheme. I'd say it's different. R2RS appeared 1985... R2RS from 1985: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.1891 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.1... It mentions Common Lisp as the inspiration for it numeric capabilities. And Common Lisp got parts of it from Maclisp and Macsyma. Before that: R1RS. does not describe a numeric tower. ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf
- dschiptsov 12y agoThe first edition of SICP form 1985 already has a discussion of numeric capabilities in Scheme as an example of programming style based on generic procedures. It might don't have the term Numerical Tower but the ideas were well-developed before 1985. Original HP lectures of Abelson and Sussman explicitly explain the how and whys. Brian Harvey's CS61A has it. Smalltalk also has Numerical Tower for the very same reasons - to have "generic" '+ '* '/ etc. Here classic discussion of the topic: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/4b-generic-operators/ http://ocw.mit.edu/courses/electrical-engineering-and-comput... Note when he emphasize how generic '+ procedure is used. This btw is one of most important realization in a whole course. It is justification behind the Numerical Tower.
- lispm 12y ago> don't have the term Numerical Tower but the ideas were well-developed before 1985 These things existed way before Scheme and Common Lisp. 60s. Lisp had a generic + shortly after the dinosaurs disappeared... Scheme hasn't introduced that. See for example the Lisp 1.6 manual from 1968. It had inums (short ints), fixnums, bignums (large ints) and reals. See chapter 4. It had generic numeric functions. See chapter 12.1 of the manual. http://www.softwarepreservation.org/projects/LISP/stanford/SAILON-28.2.pdf http://www.softwarepreservation.org/projects/LISP/stanford/S... Extensive mathematical software was written long before Scheme existed: Macsyma, Reduce, .... Maclisp's compiler was hacked up quite a lot to support Macsyma, in the mid 70s. Bignums were added to Maclisp in 70/71. Complex numbers were in S-1 Lisp and came from there to Common Lisp, it seems. Common Lisp was a successor to Maclisp and it was expected that the large amount of math software (like Macsyma or IBM's Scratchpad, both available under Maclisp) should be supported. Common Lisp had nothing numerical from Scheme. Basically it got its capabilities from Maclisp, Macsyma and S-1 Lisp. Neither CLtL1 nor HOPL2 gives any indication of any Scheme influence in that area. Scheme took CL's numeric capabilities (see the Scheme Report from 1985 - CL was under development from 81/82 onwards with CLtL1 published in 1984) and then developed new ideas... Common Lisp had some Scheme influences, but not the numeric capabilities.