How to use Mathematica and the Wolfram Langage - for beginner, intermediate, and advanced users.
Sunday, February 12, 2012
OrderingQ
OrderingQ
OrderingQ is the predicate of the family, which by default returns True of False if a List (or List of arguments of any function) is in "canonical" order, defined as lowest numerical or symbolic value to highest.
In[269]:= numericalList = Range@12 // RandomSample[#, 12] &
Out[269]= {11, 2, 5, 9, 1, 3, 8, 7, 4, 12, 10, 6}
In[270]:= OrderedQ@numericalList
Out[270]= False
Sort by default sorts from low to high.
In[271]:= Sort@numericalList
Out[271]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
In[272]:= OrderedQ@%
Out[272]= True
In[273]:= alphaList = CharacterRange["a", "z"] // RandomSample[#, 12] &
Out[273]= {"l", "d", "f", "x", "o", "z", "i", "y", "w", "s", "m", "g"}
In[274]:= OrderedQ@alphaList
Out[274]= False
Again, Sort by default sorts from low to high, technically using the ASCII code for the characters.
In[275]:= Sort@alphaList
Out[275]= {"d", "f", "g", "i", "l", "m", "o", "s", "w", "x", "y", "z"}
In[276]:= OrderedQ@%
Out[276]= True
In[277]:= ToCharacterCode@alphaList
Out[277]= {{108}, {100}, {102}, {120}, {111}, {122}, {105}, {121}, {119}, {115}, {109}, \
{103}}
In[278]:= Sort@%
Out[278]= {{100}, {102}, {103}, {105}, {108}, {109}, {111}, {115}, {119}, {120}, {121}, \
{122}}
We can give OrderedQ our own ordering function, as complex as we like, to decide if the List is ordered. In this example we simply override OrderedQ's default, which is normally in accord with Sort's of ordering from small to large, and ask OrderedQ if the List is ordered from large to small.
In[281]:= OrderedQ[Sort@numericalList, Greater]
Out[281]= False
[b]
RSI^2: Recursive Safety Improvement: Apply AI to its own safety R&D
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment