Re: mathematica question

*To*: mathgroup at smc.vnet.net*Subject*: [mg9221] Re: [mg9199] mathematica question*From*: Olivier Gerard <Quadrature at technolink.org>*Date*: Fri, 24 Oct 1997 01:00:34 -0400*Sender*: owner-wri-mathgroup at wolfram.com

>Hello Mathematica users, > >I have a question that I hope someone has an answer for. I think it >should be simple but I cannot find a way to make it work. > >I have a set of functions that take no inputs, they are called q1[], >q2[], q3[] and so on. > >How can I get Mathematica to run the correct function given a list of >numbers as input. IE, if I supply the list {1,4,7,8} I would want >Mathematica to run the functions q1[], q4[], q7[] and q8[], assuming >they were defined. > >I would appreciate any assistance you might have with this!! > >Sincerely, > >Tom De Vries Hello Tom, You can try In[1]:= theqMap[thelist_List] := Map[ ToExpression["q"<>ToString[#]<>"[]"]&, thelist] In[2]:= theqMap[{1,4,7,8}] Out[2]:= {q1[],q2[],q3[],q4[]} (this will also work if you use coherently something else than a number such as a symbol). but why not define these various functions as q[1],q[4]... ? It would allow you to use Map directly and this is in the spirit of the Mathematica Language. You are not forced to supply a behavior for every integer or every possible input: just type them as you need them. Also if you don't want to have as result a list of the various results of the function, but only the execution of the various functions, use Scan instead of Map. Olivier Gerard