Re: Re: Re: Programming style: postfix/prefix vs. functional
- To: mathgroup at smc.vnet.net
- Subject: [mg70721] Re: [mg70673] Re: [mg70633] Re: [mg70587] Programming style: postfix/prefix vs. functional
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Tue, 24 Oct 2006 02:24:37 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200610200921.FAA11092@smc.vnet.net> <200610210914.FAA29189@smc.vnet.net> <2A8E209D-C4D9-45C1-933B-5E3D955D99C5@mimuw.edu.pl> <acbec1a40610210543k3a861eb7tb3bdb777170618b@mail.gmail.com> <2F11E8C9-D5C5-45EC-BA91-7F52E72CCC3B@mimuw.edu.pl> <200610230649.CAA06543@smc.vnet.net>
- Reply-to: murray at math.umass.edu
Perhaps a reasonable interpretation is that @ is being overloaded as an
abbreviation.
On the one hand:
Composition[f,g][x]
f[g[x]]
f@g[x]
f[g[x]]
On the other hand:
f@x
f[x]
Chris Chiasson wrote:
> On 10/21/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
>> Well, I would say that f@x is just a "shorthand" for f[x] and does
>> not "correspond" to any function. It seems to me that same applies to
>> @@ and to @@@ ...
>
> But we know that @@ and @@@ correspond to Apply at level specification
> {0} and {1}, respectively. We also know that /@ and //@ correspond to
> Map at level specification {1} and {0,Infinity} (or just MapAll). It
> seems to me that @ is the odd one out, because it doesn't "correspond
> to a particular function".
>
> On 10/21/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
>> Well, I would say that f@x is just a "shorthand" for f[x] and does
>> not "correspond" to any function. It seems to me that same applies to
>> @@ and to @@@ and none of these cases ? will yield any information.
>> In fact, ? itself works in a curious way. Sometimes it corresponds to
>> the function Information; as in
>>
>> Information[Sin]
>>
>> which is the same as ?Sin. But in some cases, notably ?@ you can't
>> use Information; this
>> Information[@] does not parse correctly (I think this is the right
>> way to use "parse" ;-)), in other words, it is not syntactically
>> correct. So ? seems actually work in two different ways: as another
>> way to input Information but also rather like the symbol ! in front
>> of a file name, which displays the contents of the file on the screen
>> and does not correspond to any Mathematica function.
>>
>> Andrzej Kozlowski
>>
>>
>> On 21 Oct 2006, at 21:43, Chris Chiasson wrote:
>>
>>> Andrzej Kozlowski,
>>>
>>> Thanks for the wildcard info!
>>>
>>> So, does @ correspond to Operate? I think Operate is a bit different
>>> than @, but I am not sure.
>>>
>>> On 10/21/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
>>>> (tm) Pro*
>>>>
>>>> On 21 Oct 2006, at 18:14, Chris Chiasson wrote:
>>>>
>>>>> One thing I have wondered is, what function corresponds to the
>>>> short
>>>>> hand "@". I know @ appears in Operate. Also, the ? can sometimes
>>>> tell
>>>>> what function an operator represents (try ?/@ ) , but ?@ only gives
>>>>> System`$ (the symbol $ in the context System).
>>>> That's because the symbol @ already has another meaning as a "wild
>>>> card":
>>>>
>>>> @ , one or more characters excluding upper$B!>(Bcase letters
>>>>
>>>> (A more general wild card is, of course *). So ?@ returns all the
>>>> symbols defined in the contexts of the current session that do not
>>>> contain capital letters. Evaluate some symbols whose names contain
>>>> only small letter in Mathematica and try ?@ again to see this in
>>>> action.
>>>>
>>>> Andrzej Kozlowski
>>>>
>>>>
>>>>>
>>>>> On 10/20/06, Will Robertson <wspr81 at gmail.com> 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
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> http://chris.chiasson.name/
>>>>>
>>>>
>>>
>>> --
>>> http://chris.chiasson.name/
>>
>
>
--
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>
- Re: Programming style: postfix/prefix vs. functional
- From: "Chris Chiasson" <chris@chiasson.name>
- Re: Re: Programming style: postfix/prefix vs. functional
- From: "Chris Chiasson" <chris@chiasson.name>
- Programming style: postfix/prefix vs. functional