The syntactical building blocks might be similar but the execution model differs. While you could obviously achieve any sort of term evaluation with a metainterpreter, the TRS in Mathematica offers a rather smart rewriting system.<p>It can easily express things like associative and commutative operators (esp. useful if you have a pattern that matches on a use of that operator), and alternate evaluation orders (outside-in, mixed, lazy, held, &amp;c). These are hard to trivially implement w&#x2F;o very different kind of interpreter.<p>In this sense, most Lisp implementations pick a static evaluation strategy and leave implementing alternatives to a metainterpreter, which isn&#x27;t exactly what&#x27;s happening in Mathematica.