```Date: May 7, 2013 3:53 AM
Author: Alex Krasnov
Subject: Re: Listable Attribute of Pure Function that returns a

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
```