| > I guess it's nice to know you wouldn't call Mathematica a Lisp, Thanks! > but I didn't say it was strictly in the Lisp family, just a strange variant. Right, that was my point, I don't consider term rewriting systems as Lisp variants, even though they may have numbers and strings as data types. The actual execution engine is too different. Fexprs had the interesting property that it sees the actual source at runtime (which makes it very different from lazy evaluation or wrapping things in lambdas), which appeals especially to users/implementors of computer algebra systems (see Reduce written in Portable Standard Lisp, which provides Fexprs) or other math software dealing with formulas (like R, which has a feature similar to fexprs). > Mathematica does have a built-in compiler, but granted it is unclear exactly what subset of the language it is compiling. From what I read of its very unspecific documentation, I doubt that it does the term rewriting at compile time (like Lisp does macro expansion at compile time) - does it? To me it looks like the compiler targets numeric code and basic control flow... They probably have better documentation of their language implementation, internally. Or is there an externally available document, which actually describes their implementation? Mathematica as a rewrite language https://www3.risc.jku.at/publications/download/risc_342/1996... |