Re: List arguments to functions
- To: mathgroup at smc.vnet.net
 - Subject: [mg45559] Re: [mg45537] List arguments to functions
 - From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
 - Date: Wed, 14 Jan 2004 01:26:13 -0500 (EST)
 - References: <200401130903.EAA10620@smc.vnet.net>
 - Sender: owner-wri-mathgroup at wolfram.com
 
On 13 Jan 2004, at 09:03, Chris Rozell wrote:
> I have basic experience with Mathematica, but this problem has stumped
> me for the last day or so.  Any help would be appreciated.
>
> I have a function that needs to take two lists as arguments, perform
> operations on them, and then sum the resulting list.  However, by
> including the Plus function, it operates on each list item separately
> (which is exactly the opposite of what I need.  For a simple example,
>
>> myfunc[x_, y_] = Apply[Plus, x + y];
>> myfunc[{1, 2, 3}, {4, 5, 6}]
>>
>> {5, 7, 9}
>
> When what I would really like is the number 21 (i.e., 5+7+9, perform 
> the
> list addition first, then sum the components).  In this simple example 
> I
> could perform the summation after the function returns, but in my real
> problem this would not be possible.
>
> When reading the documentation, it appears that the Plus function
> behaves this way because it has the attribute "Flat".  But even after
> removing that attribute it still behaves in the same way, so I may be
> misunderstanding the description of "flat".  Can anyone suggest a way 
> to
> either modify the Plus function behavior, or do this another way?  
> Thank
> you in advance!
>
>
Your problem has nothing to do with the attributes of Plus but is 
simply caused by your using  = (Set) instead of := (SetDelayed).
Thus:
myfunc[x_,y_]:=Apply[Plus,x+y];
myfunc[{1,2,3},{4,5,6}]
21
Andrzej Kozlowski
Chiba, Japan
http://www.mimuw.edu.pl/~akoz/
- References:
- List arguments to functions
- From: Chris Rozell <crozell@rice.edu>
 
 
 - List arguments to functions