Re: Programming style: postfix/prefix vs. functional
- To: mathgroup at smc.vnet.net
- Subject: [mg70604] Re: [mg70587] Programming style: postfix/prefix vs. functional
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Sat, 21 Oct 2006 05:13:39 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200610200921.FAA11092@smc.vnet.net>
- Reply-to: murray at math.umass.edu
I'd disagree that using prefix and postfix notation "sacrifices some
level of readability" -- at least once is used to this additional
notation. In fact, they are often used for the very purpose of
improving readability.
For example,
f /@ expr
is often more readable than the equivalent
Map[f, expr]
when expr is itself complicated enough, even sometimes when expr is just
a brace-delimited list.
Likewise, for an expression expr that is the focus of attention, if you
just want to check its numeric value,
expr // N
is often more readable than
N[expr]
and even if not, it's often convenient to keep typing and put the "// N"
at the end of a line rather than go back to the start of the line, put
"N[" there and then return to the end of the line with the closing "]".
Yet another case is composition:
f@g[expr]
is sometimes easier to "grok" than the equivalent
f[g[expr]]
with the nested brackets in the latter (and the use of @ so closely
resembles the traditional function composition operator in mathematics,
anyway).
Will Robertson wrote:
> Hello,
>
> As a newcomer to Mathematica, I'm a little unsure on what "good style"
> would be in this programming language. I notice that several functions
> have prefix and postfix notations such as //. for ReplaceRepeated, /@
> for Map, and so on.
>
> Clearly using these forms makes the code more compact, but sacrifices
> some level of readability. Are there guidelines or suggestions that
> have built up over the years of whether these are "good" or "bad" to
> use?
>
> If it's simply personal preference, what do you like to use?
> --
> Many thanks,
> Will Robertson
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- Programming style: postfix/prefix vs. functional
- From: "Will Robertson" <wspr81@gmail.com>
- Programming style: postfix/prefix vs. functional