This might be obvious to many, but the language of Mathematica has better support for ("abstract") currying than Lisp, something like
A[B, C][X, Y][Z]
does not straightforwardly translate into an S-Expression but is potentially convenient for symbolic algebra. I believe that I read this emphasis on currying in one of Wolfram's own accounts on how Mathematica came to be. It is probably also important that the internal data structure used by Mathematica is not a list, I think the support for "level specs" points at how internally the data is most likely represented, although I'm not sure.
We could clean up this syntax and write a macro. Let's call that M. Then one could write
(M A (B C) (X Y) (Z))
The definition of M is quite simple.
Secondly, Lisp only uses lists for the representation of most of its source code. Actual computational data structures of course need not be lists. Mathematical expressions need not be represented as lists in Lisp.
I'm not sure they are quite equivalent, the semantics of pattern matching tend to be different: in lisps lists are always a kind of binary tree so (list 1 2 3) is really (1 . (2 . (3 . nil))), this has a consequence for unification in that (list 1 2 3) will match (x y) as 1 and (list 2 3). In Mathematica on the other hand lists tend to be flatter if you will, and there is this concept of Sequence which I sometimes find problematic.
A[B, C][X, Y][Z]
does not straightforwardly translate into an S-Expression but is potentially convenient for symbolic algebra. I believe that I read this emphasis on currying in one of Wolfram's own accounts on how Mathematica came to be. It is probably also important that the internal data structure used by Mathematica is not a list, I think the support for "level specs" points at how internally the data is most likely represented, although I'm not sure.