5 ms·
He lost me when he claims that "Lisp culture is hostile to mathematics". I mean, has he heard of Maxima? Axiom?
by Grue3 13y ago
He lost me when he claims that "Lisp culture is hostile to mathematics". I mean, has he heard of Maxima? Axiom?
- coldtea 13y agoI'm not deep in Lisp's culture, but his claim might still very much hold. The fact that you can name two math-related Lisp projects doesn't mean that those play a big role in "Lisp culture" in general. How important are Maxima and Axiom for the average Lisper? Are they pillars of the Lisp culture or outliers? There very well might be a thriving 1% math-loving Lisp community and a 99% who are hostile to math. Those are the right questions to ask, not if counter-examples merely exist.
- tokenrove 13y agoMaxima and Axiom have been around since the 60s, and have had a crucial influence on the development of Lisp. More generally, higher mathematics has had an inseparable effect on the development of Lisp, especially Common Lisp. To me it seems absurd to say that Lisp culture is hostile to math.
- nickpinkston 13y agoIsn't that like saying: "Modern racecars are designed with high performance CAD / simulation software - race mechanic culture is therefore inseparable from this software culture" - that would be the absurdity
- coldtea 13y agoYes. From the answers above, what I've gathered is that those mathematic packages were important for the design of Lisp 3-4 decades ago. Doesn't help clarify whether current Lisp practice (as of 1 decade say), still favors mathematics as much. A similar example would be AI, which used to tightly connected with Lisp, but it's something that modern Lisp practicioners (post-AI Winter) don't care much for.
- lispm 13y ago> The fact that you can name two math-related Lisp projects doesn't mean that those play a big role in "Lisp culture" in general. Macsyma for example was one of the first big and very useful Lisp applications which brought down Mainframes and Minicomputers of that time. Macsyma led to: optimizing compilers with good maths performance in Lisp, the addition of many numeric data types to Lisp (bignums, floats, complex, ratios, ...), Lisp-based workstations, ports of Lisp to many architectures just to run Macsyma, ... Common Lisp then was standardized with an extensive numeric tower - which was reused for other languages like Scheme or Haskell. Even today a free version of Macsyma, called Maxima is used and maintained. > Are they pillars of the Lisp culture or outliers? There very well might be a thriving 1% math-loving Lisp community and a 99% who are hostile to math. Many Lisp users apply mathematics. Traditionally either directly with Mathematics applications (even RPL on the HP calculator stands for Reverse Polish Lisp) or in application domains like AI (signal processing, image processing, machine learning, etc etc.).
- catnaroek 13y agoLisp's numeric tower is, if anything, a great example of how not to do mathematics. It is just too coarse-grained to be useful: it lumps into a single giant structure every possibly imaginable number. On that basis, you cannot easily constrain yourself to working on a more specific algebraic structure of interest. If you need a total order, you are screwed up: the numeric tower includes complex numbers. If you need to work on a quotient ring, you are screwed up: the numeric tower includes floats. Haskell's relatively fine-grained distinctions between numeric types is nothing like Lisp's numeric tower.
- lispm 13y ago> it lumps into a single giant structure every possibly imaginable number. What? There are several different numeric types. It's there to implement more advanced mathematics capabilities. Like in Axiom, which runs on top of Common Lisp. > Haskell's relatively fine-grained distinctions between numeric types is nothing like Lisp's numeric tower. Haskell's numeric capabilities were in part copied from Common Lisp.
- catnaroek 13y agoLisp culture strikes me as "every programmer is free to come up with his own abstractions, and which need not play nicely with each other, especially when they leak". To a large extent the macro systems of modern Lisps are at fault here. Macros are primarily syntactical abstractions, so they empower the programmer to quickly implement what he can envision, no matter how much boilerplate it would take in another language. But one thing macros cannot possibly do is ensure that the programmer's vision is correct and takes into account even those pesky subtle corner cases. In the hands of a not particularly careful programmer, Lisp macros are just an efficient tool for screwing up big time. On the other hand, Haskell culture is more like "let's try to find the most general possible unifying principles that work for everyone, and let's use universal algebra / category theory / etc. to ensure our abstractions do not leak". And the type system is great help in this department. Algebraic data types make it harder to forget to account for all cases. Type system extensions allow the programmer to express more program properties statically, leveraging the compiler as a correctness verification tool. And all the categorical constructs expressed primarily as type classes (besides the already known Functor, Monad, Category, Arrow, etc., check Hackage for everything Edward Kmett has uploaded) are general patterns that arise everywhere, both in mathematics and in programming. Which is no surprise, because programming is mathematics. So, back to the main point of my comment, while I would agree that "Lisp culture is hostile to mathematics" is unnecessarily too strong a statement, I would also say that most Lispers do not leverage mathematics to the extent one would expect from functional programmers.