Re: Mathematica daily WTF

*To*: mathgroup at smc.vnet.net*Subject*: [mg115030] Re: Mathematica daily WTF*From*: Richard Fateman <fateman at cs.berkeley.edu>*Date*: Wed, 29 Dec 2010 05:55:34 -0500 (EST)*References*: <ifcuiu$cg7$1@smc.vnet.net>

On 12/28/2010 7:09 AM, Andrzej Kozlowski wrote: ..snip.. The only exception that comes to my mind is direct application of anonymous functions such as: > > #^3&@2 > > 8 > > which seems to me the only genuine "functional" aspect of Mathematica I agree. But people like to think of f[x_]:= as defining a function, and it is a useful illusion for about 99% of the time for 99% of users. (I would also argue that all claims of similarity between Mathematica and Lisp, not to mention the supposed "borrowing" are based on a very superficial understanding of Mathematica). Actually, the claims are generally made by people writing about Mathematica, and I suspect that it is that the people doing the writing have only a superficial understanding of Lisp. As far as I know in its basic structure it is unlike any other programming language Um, the important part of that statement is, "As far as I know". Since there are clearly programming languages that are similar in basic structure that pre-date Mathematica. Rule-based programming has a substantial history. See CLIPS, OPS-5, COMIT, METEOR (Bobrow), SNOBOL and a pile of "expert system building tools" e.g. emycin... some of these go back to 1966 or earlier. so it should not be surprising that > >> the meanings that Mathematica puts on of bread-and-butter >> programming terms like "=="/"assignment", "value", and "dynamic >> scope" are entirely sui-generis When common programming terms are used in a different manner, it sows the seeds of misunderstanding. Just as the use of "function" in computer languages is confusing compared to "function" in mathematics. Note that SMP, Wolfram's predecessor to Mathematica, used the term "projection" for something. It was easiest to think of projections as functions, though they weren't really. from a paper by Chris Cole and SW.. "The projection f [expr] represents the part of the expression f selected by the "filter" expr. If f is a list, the entry with index expr is selected. If f is a symbol with no value, operations performed on f [expr] hold for any value of f." RJF