Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Listable Attribute of Pure Function that returns a
Replies: 2   Last Post: May 8, 2013 4:10 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Alex Krasnov

Posts: 15
Registered: 10/3/12
Re: Listable Attribute of Pure Function that returns a
Posted: May 7, 2013 3:53 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply


On Mon, 6 May 2013, Dan O'Brien wrote:

> Now, I do the same but instead I define a pure function
> In[37]:= ClearAll[func]
> SetAttributes[func, Listable]
> func = {{#1, #2}, {#3, #4}} &;
> func[a, b, c, Array[d, 4]]
>
> Out[40]= {{a, b}, {c, {d[1], d[2], d[3], d[4]}}}
>
> Clearly this is not behaving as a listable function, its simply
> substituting the list of d's for the 4th argument.


In my understanding, pure functions with anonymous parameters do not
support attributes. Pure functions with named parameters do as follows:

In: Function[{a, b, c, d}, {{a, b}, {c, d}}, Listable][a, b, c, Array[d, 4]]
Out: {{{a, b}, {c, d[1]}}, {{a, b}, {c, d[2]}}, {{a, b}, {c, d[3]}}, {{a, b}, {c, d[4]}}}

> If I do the same for a pure function that does not return a list,
> everything is fine:
>
> In[42]:= ClearAll[func2]
> SetAttributes[func2, Listable]
> func2 = (#1 + #2)/(#3 - #4) &
> func2[a, b, c, Array[d, 4]]
>
> Out[44]= (#1 + #2)/(#3 - #4) &
>
> Out[45]= {(a + b)/(c - d[1]), (a + b)/(c - d[2]), (a + b)/(
> c - d[3]), (a + b)/(c - d[4])}
>
> And in any case, mathematica behaves the same here if I don't do
> anything with the Attributes of func2, that is, there is no need to
> explicitly SetAttributes to Listable for this particular example.


In this case, func2 is not Listable, but Plus, Minus, Divide are.

Alex




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.