> To me this looks like a Lisp variant with a large set of utility libraries.
I feel like I'm missing something because I read this a lot, but don't see it when I look at Mathematica. The language seems to be a higher-order, functional programming language with dynamic (?) typing. That part sounds like lisp, but syntactically it looks nothing like lisp to me. Is there a portion of the language that I'm overlooking?
Technically the language is a Term Rewriting System[1]. You can use it as a TRS by directly manipulating transformation rules, in a functional way, in an imperative way, and of course as pure symbolic mathematics.
It does naturally suit functional thinking, so that becomes the default 'best' way of engaging with it.
Thanks. I think I knew this years ago while spending my off-work hours delving deeper into programming language history and theory, but most of that info is now lost from disuse. Like I said to your sibling post, I see the semantic comparisons, I just don't get calling it a "lisp variant", unless we're going to call every language with somewhat similar or derivative semantics but wildly different syntactical structures and additional semantic constructs lisp variants as well. With that, distinction between languages (primarily for conversation and discussions) becomes virtually non-existent as we could probably come up with a half dozen categories that all languages fall under.
Interesting. And after looking at Mathematica (the language) more this morning, I can see the influence of Lisp and other languages. I think my definition of "lisp variant" is stricter than others' definition. I wouldn't consider Rebol, TCL or Ruby "lisp variants", even though they both derive a lot of language concepts from the lisp family. So I can't really consider Mathematica a lisp variant either.
Put it in any bucket you like, but don't ignore it. Mathematica is absolutely worth studying. If you've never used a general purpose term rewriting system before, you're missing out on some mind-altering stuff.
I'm not ignoring it, I used it years ago in grad school, it was fantastic. It just has no relevance (as a tool) to my current work or sideprojects. My question was strictly about calling it a lisp variant.
i think you're right that the "essense" is not lisp. Mathematica is more abstract than lisp, and it has lisp-like features built on top of it. that said, the analogy can be useful because things like "macros" are completely natural to the language:
In[1]:= FullForm[a + b]
Out[1]= Plus[a, b]
In[2]:= a + b /. Plus -> Times
Out[2]= a b
I feel like I'm missing something because I read this a lot, but don't see it when I look at Mathematica. The language seems to be a higher-order, functional programming language with dynamic (?) typing. That part sounds like lisp, but syntactically it looks nothing like lisp to me. Is there a portion of the language that I'm overlooking?