Re: General--Difficulties in Understanding Mathematica Syntax
- To: mathgroup at smc.vnet.net
- Subject: [mg69006] Re: General--Difficulties in Understanding Mathematica Syntax
- From: AES <siegman at stanford.edu>
- Date: Sat, 26 Aug 2006 02:04:53 -0400 (EDT)
- Organization: Stanford University
- References: <echdk4$oir$1@smc.vnet.net> <ecmgpr$9b3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <ecmgpr$9b3$1 at smc.vnet.net>, Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com> wrote: > > Now, it is utterly better to use high-level constructs such as Map, > Thread, Apply, ... when you code in Mathematica. > I don't exactly quarrel with this -- but I sure don't fully accept it either. Concepts like Map[ ], Thread[ ], Apply[ ] are thoroughly understood by adepts, and marginally understood by some of the rest of us. They're not concepts, or terms, commonly used in everyday speech. And they may have some hidden subtleties in their operation, even some "gotchas", in how they apply to what's inside the [ ]s. Constructs like Do[] , If[ ], While[ ] are fairly likely to be understood not just by adepts, but by anyone who's ever done even very elementary programming in (horrors!) BASIC. Their programming use matches up pretty well with the same terms in everyday speech. They make the flow of the program logic more obviously visible (at least to us non-adepts). And I suspect they have fewer hidden gotchas. Writing complex Mathematica expressions as dense, deeply nested, sometimes lengthy expressions full of arcane shorthands ("\\@", etc) is akin to writing dense, arcane, possible lengthy prose sentences full of arcane terminology. Writing them as short, crisp, clear constructs, one task at a time, is like writing short, crisp, clear prose sentences. The people who construct "readability indexes" for prose have some opinions about this. [We all, of course, fondly remember APL: "Code once, read or modify never".] What is it that's actually **better** (for the "ordinaryt user") about these more sophisticated constructs? * Readability? -- except for adepts, I don't think so. * Faster, more efficient execution? -- perhaps so, but in the vast majority of cases, who cares?!? * More accurate execution? -- I sure hope not. * Shorter code (fewer characters)? -- again, who cares?!? * Bragging rights (I can accomplish the task with fewer characters than anyone around)? -- Well, that was a very salable skill, in magnetic core and assembly language days. Again, to each his own. Part of the genius of Mathematica is that it serves the novice user and the sophisticated adept. But "better"?
- Follow-Ups:
- Re: Re: General--Difficulties in Understanding Mathematica Syntax
- From: János <janos.lobb@yale.edu>
- Re: Re: General--Difficulties in Understanding Mathematica Syntax
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: General--Difficulties in Understanding Mathematica Syntax
- From: "Chris Chiasson" <chris@chiasson.name>
- Re: Re: General--Difficulties in Understanding Mathematica Syntax