Re: Sort within self-defined procedure
- To: mathgroup at smc.vnet.net
- Subject: [mg108606] Re: Sort within self-defined procedure
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Thu, 25 Mar 2010 04:24:22 -0500 (EST)
Your own code explains it perfectly. ks[x_] = Module[{l}, l = {1, 5, x, 2}; Sort[l, Greater]] {5, x, 2, 1} The result is not a Module... it's precisely the list above: ?ks Global`ks ks[x_]={5,x,2,1} Hence, when you try ks[20] later, it naturally puts 20 in the place of x. What you needed was SetDelayed (":=") not Set ("="). For instance, ks[x_] := Sort[{1, 5, x, 2}, Greater] ks[21] {21, 5, 2, 1} (Module wasn't needed, either way.) Bobby On Wed, 24 Mar 2010 04:42:34 -0500, dornakul <postitdummy at arcor.de> wrote: > Hi, > > I am desperate. Why is it not possible to sort a list within a self- > defined procedure? > > Here comes the minimal example > > In[188]:= ks[x_] = Module[{l}, > l = {1, 5, x, 2}; > Sort[l, Greater] > ] > > Out[188]= {5, x, 2, 1} > > In[190]:= ks[20] > > Out[190]= {5, 20, 2, 1} > > Dornakul > Using Mathematica 7 on a Windows machine > -- DrMajorBob at yahoo.com