Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What language features distinguish Mathematica from lisp? Are we just talking about the m-expression syntax, or are there more fundamental differences?


Here's what Wolfram wrote about Mathematica vs lisp in the first Mathematica book: http://reference.wolfram.com/legacy/v1/contents/4.2.7.pdf

I don't know enough about lisp implementations to know if these differences still hold, but they still hold for Clojure and ClojureScript, for example. Though some people have done some experimentation like https://github.com/kovasb/combinator

In the email under discussion though Wolfram was beginning work on SMP, which preceded Mathematica by about 6 years and influenced the design of Mathematica both in what to do and what not to do: http://blog.stephenwolfram.com/2013/06/there-was-a-time-befo...


Thing is, you wouldn't develop a system like Mathematica without writing those sorts of things on top of your Lisp implementation. As MACSYMA, the first of these programs did, which he used prior to starting on SMP, even using a similar syntax per this comment https://news.ycombinator.com/item?id=9798643


Mathematica's evaluator is based much more on term rewriting and defaulting free variables as symbol objects. Lisp requires everything to be much more explicit (which has many pros and a few cons).


Unless you write a DSL that evaluates in the manner you want.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: