> The tool I have where I feel like I have an insane amount of power that isn't widely known is Wolfram Mathematica
I’m pretty sure I’ve heard that the Wolfram Language is in fact considered a Lisp, albeit one using M-expressions rather than S-expressions [0]. But I can’t seem to find a source for this though.
Since I can't edit my comments, here is the link to the video explaining how it evaluates. It really picks up at 21 minutes in, but the first 20 minutes is also kinda important.
Lisp was actually developed for research and development of symbolic computation systems. Early on Lisp was applied to mathematics problems like integration and other manipulation of mathematical expressions.
Thus term rewriting systems and similar (-> rule-based systems) have been early on implemented in Lisp, but Lisp itself is based on a functional&imperative expression evaluation.
I appreciate the history. It doesn't make much of a difference from an ignorant end user such as myself, but this information is at least pretty interesting to me.
I've normally categorized languages into imperative (, Fortran, C, Basic), functional (Haskell, Scheme, F#...etc), object oriented (Java, Python, Ruby, C#, JS...etc), concatenative (Forth, Factor, 8th), logic (Prolong, MiniKanren), array (APL, J, K). I guess TRS in entirely its own thing?
There are many paradigms. Rule-based languages like OPS5. Multiparadigm-languages like Common Lisp (imperative, functional, object-oriented, meta-programming, ...). Relational languages. Visual languages (Labview). Data-flow languages. ... more...
TRS looks like it is a different paradigm. The system takes a term and rewrites it based on a rule set. In some ways this is similar to rule-based systems, but those tend to manipulate not terms but facts in a database of facts.
Thanks for the explanation. I'm familiar with relational languages (SQL), multi of course, things that are hard to classify like Rebol, and a little Simulink (no LabVIEW though). I had completely forgotten about those....I wonder how many exist in practice?
I appreciate you drawing the distinction between TRS operating on rules and things like Prolog being a rules based system using facts. TBH, I only understand much of this at a very superficial level (as in I've played with Prolog several times and even read a short book, but I'd never choose it for a production application if I can get away with using SQL and some procedural code lol).
I’m pretty sure I’ve heard that the Wolfram Language is in fact considered a Lisp, albeit one using M-expressions rather than S-expressions [0]. But I can’t seem to find a source for this though.
[0] https://en.wikipedia.org/wiki/M-expression