MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Sort within self-defined procedure

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108619] Re: Sort within self-defined procedure
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Thu, 25 Mar 2010 04:26:54 -0500 (EST)

On 3/24/10 at 4:42 AM, postitdummy at arcor.de (dornakul) wrote:

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

You are having problem because you used Set (=) when defining ks
instead of SetDelayed (:=). When you use Set, the left hand side
gets evaluated at the time you make the definition. So, the Sort
operation is done before x is assigned a value and not when ks
is called. By using SetDelayed, the Sort operation occurs after
x is given a value when ks is called which is what you want. As
a general rule, you should use SetDelayed when defining
functions not Set



  • Prev by Date: Re: estimation
  • Next by Date: Re: Sort within self-defined procedure
  • Previous by thread: Re: Sort within self-defined procedure
  • Next by thread: Re: Sort within self-defined procedure