3 ms·
I don't really understand the point of the Wolfram Language. It feels like a language with a humongous standard library that tries to cover everything?
by chinhodado 11y ago
I don't really understand the point of the Wolfram Language. It feels like a language with a humongous standard library that tries to cover everything?
- rtkwe 11y agoIt's purpose is much the same as Maple or R a language designed with mathematics and stats. The standard library is just one of the peculiarities of how Wolfram decided to design his language. Instead of using libraries like R it's all built in. Beneath that it's not so terribly odd being a mostly functional language with a standard library that covers maths requirements.
- brandonbloom 11y agoBeyond surface similarities like an emphasis on data transformation over side-effects, I wouldn't call Mathematica a functional language. It's much better classified as a term rewriting language: https://en.wikipedia.org/wiki/Category:Term-rewriting_programming_languages https://en.wikipedia.org/wiki/Category:Term-rewriting_progra...
- 4ad 11y agoThen I guess you don't call Lisp a functional language either?
- strmpnk 11y agoThe 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. 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, &c). These are hard to trivially implement w/o very different kind of interpreter. In this sense, most Lisp implementations pick a static evaluation strategy and leave implementing alternatives to a metainterpreter, which isn't exactly what's happening in Mathematica.
- brandonbloom 11y agoLisp's evaluation strategy is based on a very particular category of rewriting systems known as the lambda calculus. Mathematica's is an abstract rewrite system with a broad set of evaluation strategies that are not easily represented in the lambda calculus (without first implementing a term rewriting system).
- deleted 11y ago[deleted]
- sundarurfriend 11y agoThere's a "For programming language experts" page[1], which describes the language as: > The Wolfram Language is first and foremost an evolution of the symbolic language developed for Mathematica over the course of more than 25 years. But it's considerably more than that—adding the knowledge, knowledge representation and natural language abilities of Wolfram|Alpha, as well as a new symbolic deployment mechanism created with the Wolfram Cloud. This is followed by a "Buzzword Compliance" section, which lives up to its name, but describes some of the features of the language [1] http://www.wolfram.com/language/for-experts/ http://www.wolfram.com/language/for-experts/