From: Florian Frank Date: 2009-01-14T05:38:08+09:00 Subject: [ruby-core:21318] Re: [Feature #994] Hash-order preservation should be declared a feature; documentation needs to be adapted Joachim Wuttke wrote: > Feature #994: Hash-order preservation should be declared a feature; documentation needs to be adapted > http://redmine.ruby-lang.org/issues/show/994 > > Author: Joachim Wuttke > Status: Open, Priority: Normal > > I would like to come back to a thread from March 2008 in comp.lang.ruby, > http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/5803482840ed66ca/7af75e86b1975224?hl=enaf75e86b1975224: > > For me, hash order preservation is an important advantage of Ruby 1.9; it allows me to generate human-readable YAML output without ugly workarounds. > > Matz said, it is now a guaranteed feature of CRuby; but at that time he was still cautious regarding Ruby-the-language. Maybe time has come to establish a consensus and to take a decision. It would give me security for the future of my code base. > > Once hash-order preservation is declared a feature, the following text in ri1.9 needs to be adapted: > "The order in which you traverse a hash by either key or value may seem arbitrary, and will generally not be in the insertion order." > > > ---------------------------------------- > http://redmine.ruby-lang.org > If it has been declared a feature shouldn't Hash#sort and Hash#sort_by return a hash instead of an array? It would also be possible to implement Hash#sort! in the style of Array#sort! then. -- Florian Frank