A toy Mathematica interpreter in Haskell
community.wolfram.com
community.wolfram.com
It also provides jupyter kernel.
The original author was hired by Wolfram, but the project still lives on!
Maxima is older than Mathematica and written in LISP. One of its contributors has written MockMMA to implement Mathematica in LISP:
The main issue was that generating the tables was extremely slow (~15mins). We solved this by packaging the tables, but when the version of ply changed a table regeneration was forced on our users.
The recursive descent parser was also simpler and significantly more performant.
There's a short write-up on the PR: https://github.com/mathics/Mathics/pull/416
However both times I got the basic language going then realized it was the standard library that made Mathematica gold and abandoned it.
Kudos to him and it's good work!
When I was at the university[0], we were forbidden to use Caml Light, Lisp or Prolog in our compiler classes, because they would make the exercises too easy and so we wouldn't learn properly.
[0] Haskell was still to be born and we had Miranda instead.
unbeatable
As if no other language has the same feature set.
Unless s/he was being sarcastic, but if so I don't get the joke.
It has nothing to do with Lisp or ML.
Read again:
> This proves, once again, what a world-class, unbeatable tool Haskell is for writing toy interpreters.
This somehow suggest a) that it is not quite exactly really there, where one may want to develop a non-toy interpreter/compiler/... and/or b) that a lot of examples are just toy programs which can be as well developed in any language and one has now seen zillions of those in Haskell and everyone is convinced that Haskell is good for implementing toy interpreters. and/or c) that the quality of the code stays on toy level.
In this case it is a slightly more advanced toy interpreter, but the implementation lacks any information about its architecture, there is no documentation, stuff is hardcoded, etc. It's the typical slightly autistic implementation where there is the code and a some tests...
The real challenge would be to develop a non-toy interpreter/compiler/... Is there Haskell still a world-class, unbeatable tool?
Personally I'm not a Haskell user, but I like that people are writing code in it. Though for such an application I would like to see a bit more effort on the meta-information about the code. You can see that in some (!) Lisp programs, people invest some effort to make them very expressive and readable. Just read the PAIP code/book from Peter Norvig which implements some parts of Macsyma in Common Lisp.
But there is the danger of not being able to really compete for many high-level languages. Lisp had some attempts for actual products in this domain of computer algebra: Macsyma, Reduce and Axiom were the most prominent. The were developed as real products with actual end-users. They failed in the market place against languages with C/C++-based implementations like Mathematica. Though they are still being maintained as open source / free software projects.
Still, I don't agree with the snarky remark of the OP, hence why I wasn't getting it, as there are several uses of Haskell in production.
Besides Microsoft, Facebook and Intel there are quite a few other companies using it in production, specially in financial and insurance sector for data modelling.
I am the other way, I have dabbled quite a few times with Lisp languages, mostly Emacs Lisp, Guile and Clojure.
I am also a big fan of the old Lisp Machines, but having learned FP in Caml Light, my brain got hardwired to ML derived languages.
Non-toy computer-algebra applications in Lisp were/are Macsyma/Maxima/Vaxima, Reduce and Axiom. They were real products an end user could buy. There is an extensive amount of literature about Macsyma: http://ftp.math.utah.edu/pub/tex/bib/macsyma.bib
But then one might want to survive in the market place.
Btw., people even use the C64 still in 'production'. ;-)
http://sploid.gizmodo.com/this-old-ass-commodore-64-is-still...
But there is also the Sigma rules engine used at Facebok as another possible example,
https://code.facebook.com/posts/745068642270222/fighting-spa...
Anyway, that what I said above. Inhouse use for special purpose applications.
It's also much simpler than Lisp, without the confusing ideas of 'code as data' and 'programmable programming language'.