MathGroup Archive 2011

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

Search the Archive

Re: What "Sort" option of :Values does?

  • To: mathgroup at
  • Subject: [mg120931] Re: What "Sort" option of :Values does?
  • From: "Oleksandr Rasputinov" <oleksandr_rasputinov at>
  • Date: Wed, 17 Aug 2011 05:52:57 -0400 (EDT)
  • Delivered-to:
  • References: <j2cv3a$hfg$>

On Tue, 16 Aug 2011 06:27:06 +0100, Alexey Popkov <lehin.p at>  

> All the ...Values functions have undocumented option Sort:
> In[1]:= Options /@ {OwnValues, DownValues, UpValues, SubValues,
>   DefaultValues, FormatValues, NValues}
> Out[1]= {{Sort -> True}, {Sort -> True}, {Sort -> True}, {Sort ->
>    True}, {Sort -> True}, {Sort -> True}, {Sort -> True}}
> What this option does?

Sort -> True (the default) sorts *Values into lexicographic order in the  
output of these functions, acting as if they were Orderless (which  
actually they are not). Sort -> False, on the other hand, keeps them in  
the same order that they appear internally, which is to say the order in  
which they will be applied (and usually also the order in which they were  
defined). A simple example:

In[1] :=
a[2] = 2;
a[1] = 1;

In[3] :=

Out[3] =
{HoldPattern[a[1]] :> 1, HoldPattern[a[2]] :> 2}

In[4] :=
DownValues[a, Sort -> False]

Out[4] =
{HoldPattern[a[2]] :> 2, HoldPattern[a[1]] :> 1}

In the case of OwnValues the meaning of this is not readily apparent at  
first glance. However, a symbol can actually have multiple OwnValues if  
Condition is used, and sorting becomes meaningful in such a case.

  • Prev by Date: Re: Double Clicking (was: Just another Mathematica "Gotcha")
  • Next by Date: Re: Treat subscripted variables as symbols
  • Previous by thread: Re: setting header options in another nb with code
  • Next by thread: Re: What "Sort" option of :Values does?