Re: Using "Sum" (i = 1 ... N) in a function definition

*To*: mathgroup at smc.vnet.net*Subject*: [mg49718] Re: Using "Sum" (i = 1 ... N) in a function definition*From*: BobHanlon at aol.com*Date*: Thu, 29 Jul 2004 07:43:41 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

Use SetDelayed (:=) in the definition of the function rather than Set (=) MyData = {3,2,4,5,6}; MyFunc[i_] := Sum[MyData[[j]],{j,1,i}]; MyFunc /@ Range[Length[MyData]] {3, 5, 9, 14, 20} Bob Hanlon > In a message dated Tue, 27 Jul 2004 11:11:21 +0000 (UTC), > wilhelm.rainer at gmx.net writes: I was trying to define a function using the Sum > command in the > following way (simplified example): > > MyData = {3,2,4,5,6}; > MyFunc[i_] = Sum[MyData[[j]],{j,1,i}]; > > As you can see, the idea is to use the length of the list (i) > as a variable in the function definition, such that > > MyFunc[1] = 3 > MyFunc[2] = 3 + 2 = 5 > MyFunc[3] = 3 + 2 + 4 = 9 > > etc. Mathematica does not like the abobe statements, and prints the > following error message: > > "Part specification K$394 is neither an integer nor a list of > integers." > > Does anybody know how to define (correctly) such a function. Should be > possible ...? >