MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: new procedure for converting a new recursive polynomial set into matrices
  • Next by Date: Re: Symbolic Derivatives of Unspecified Functions
  • Previous by thread: Re: Re: Programming style: postfix/prefix vs. functional
  • Next by thread: Re: Re: Programming style: postfix/prefix vs. functional