3
$\begingroup$

The syntax of the language is centered around M-expressions, which is equivalent to LISP's s-expression.

While the evaluator behaves differently than many LISPs , mainly being term rewrite with pattern matching, with a global rule base, I believe both are Turing complete, and furthermore close enough to easily be extended so each can mutate to the other. A big swath of Scheme follows the substitution model anyway so they are very close indeed.

But are they close enough ? Can Mathematica be considered a LISP , albeit with its own peculiar evaluator.

Another way of stating this question is : What is the essence of a LISP ? what makes a language based of an abstract syntax tree with an evaluator a LISP or not ?

$\endgroup$
3
  • 2
    $\begingroup$ Have you seen Why did the Mathematica Language choose term rewriting instead of the Lambda Calculus as its basis? $\endgroup$
    – MarcoB
    Commented Nov 4, 2023 at 0:31
  • $\begingroup$ @MarcoB Yes, and it did not satisfy me, because you CAN do lambda calculus in Mathematica. $\endgroup$ Commented Nov 4, 2023 at 2:42
  • 1
    $\begingroup$ I think they feel close enough. One other difference, however, is that M- is an infinite loop evaluator, while LISPs are mostly single step evaluators. It's probably simpler to make a single step evaluator behave like an infinite loop evaluator then the other way around. $\endgroup$
    – user21
    Commented Nov 4, 2023 at 5:47

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.