Re: Bug in Sort !?!?
- To: mathgroup at smc.vnet.net
- Subject: [mg126963] Re: Bug in Sort !?!?
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Thu, 21 Jun 2012 05:15:42 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jrp94p$qbs$1@smc.vnet.net>
On 19/06/2012 08:18, James Stein wrote:
> The documentation says: "Sort orders strings as in a dictionary, with
> uppercase versions of letters coming after lowercase ones." It is
> therefore unsurprising that { "3", "4", "4b" } are already sorted.
> But who can correctly predict the three True/False values produced by
> the six lines below? (And who can explain it?)
>
> s={"3","4","4b"};
> Sort[s] == s
> s=Map[StringJoin[#,"."]&,s];
> Sort[s] == s
> s=Map[StringJoin[#,"nb"]&,s];
> Sort[s] == s
>
This boils down to the following puzzling observation:
In[20]:= Sort[{".nb", "b.nb"}]
Out[20]= {"b.nb", ".nb"}
In[19]:= Sort[{"4.nb", "4b.nb"}]
Out[19]= {"4b.nb", "4.nb"}
As far as I can see, this is inconsistent with the documentation, and I
wonder if some kludge was put into the algorithm to do something special
with Real numbers embedded in strings!
I hope someone from WRI responds!
David Bailey
http://www.dbaileyconsultancy.co.uk