[Date Index]
[Thread Index]
[Author Index]
Re: new functional operator
*To*: mathgroup at smc.vnet.net
*Subject*: [mg125645] Re: new functional operator
*From*: Ray Koopman <koopman at sfu.ca>
*Date*: Sun, 25 Mar 2012 00:15:20 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*References*: <jjfd6e$7u7$1@smc.vnet.net> <jjpakk$ov1$1@smc.vnet.net> <jkjrn9$43h$1@smc.vnet.net>
I vote for
g /@ f /@ {1, 2, 3, 4}
It's cleaner.
On Mar 24, 12:05 am, DrMajorBob <btre... at austin.rr.com> wrote:
> I'd still have to go with
>
> Composition[g, f] /@ {1, 2, 3, 4}
>
> It's fewer keystrokes and emphasizes that you're composing one function
> with another, and it's not hard to the right to left convention we've
> ALWAYS used in math.
>
> Bobby
>
> On Wed, 21 Mar 2012 17:53:12 -0500, Barrie Stokes
>
> <Barrie.Sto... at newcastle.edu.au> wrote:
>> Hi Bobby
>>
>> I agree with your sentiments. The folk who like {1, 2, 3, 4} // f /@ #
>> & // g /@ # & are those who regret the passing of assembly coding by
>> hand, which opened up programming to the great unwashed.
>>
>> Of course it can be immeasurably improved by the addition of some more
>> characters, to wit:
>>
>> {1, 2, 3, 4} // (f /@ # & ) // (g /@ # &)
>>
>> But, what about my favourite?
>>
>> Map[ (s \[Function] g[ f[ s ] ]), {1, 2, 3, 4} ]
>>
>> Or, somewhat less attractive IMHO,
>>
>> (s \[Function] g[ f[ s ] ]) /@ {1, 2, 3, 4}.
>>
>> I like (s \[Function] g[ f[ s ] ]) because to me it is intuitive, to
>> use your word. I don't have to recall the way Composition[ ] works, I
>> just have to know what g( f( x ) ) means in mathematics, and the
>> \[Function] arrow is at least more suggestive to me of its
>> meaning/effect than such as // or /@ or @@ or @@@, etc. I can at least
>> suspect that \[Function] means "goes to" or "becomes".
>>
>> Barrie
>>
>> PS
>> I've enjoyed this thread, MathGroup!
>>
>>>>> On 21/03/2012 at 9:46 pm, in message
>>>>> <201203211046.FAA27... at smc.vnet.net>,
>> DrMajorBob <btre... at austin.rr.com> wrote:
>>> Here SIX several equivalent expressions from (IMHO) most intuitive or
>>> readable to least:
>>>
>>> Composition[g, f] /@ {1, 2, 3, 4}
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> g /@ f /@ {1, 2, 3, 4}
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> Apply[Composition, {g, f}] /@ {1, 2, 3, 4}
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> g@f@# & /@ {1, 2, 3, 4}
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> Compose[g, f@#] & /@ {1, 2, 3, 4}
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> {1, 2, 3, 4} // f /@ # & // g /@ # &
>>>
>>> {g[f[1]], g[f[2]], g[f[3]], g[f[4]]}
>>>
>>> The last is truly awful.
>>>
>>> Bobby
>>>
>>> On Tue, 20 Mar 2012 02:18:47 -0500, roby <roby.no... at gmail.com> wrote:
>>>
>>>>> That creates a information fog that makes *all* Mathematica code
>>>>> harder
>>>>> to understand, and Mathematica much harder to learn than it used to
>>>>> be.
>>>>
>>>> {1, 2, 3, 4} /// f///g
>>>>
>>>>> {1, 2, 3, 4} // f /@ # & // g /@ # &
>>>>
>>>> sorry but I absolutly can't agree with your opinion in this case, the
>>>> former expression is more or less fogless and would be much easier to
>>>> understand.
>>>> The latter expression bears a lot of clutter.
>
>>>> Robert
>
> --
> DrMajor... at yahoo.com
Prev by Date:
**Re: Trouble with MathKernel**
Next by Date:
**Re: How do I import midi files into Mathematica?**
Previous by thread:
**Re: new functional operator**
Next by thread:
**Re: new functional operator**
| |