Sort stability: Difference between revisions

(→‎{{header|TXR}}: New section.)
Line 947:
p ary.stable_sort_by {|x| x[1]}
# => [["US", "Birmingham"], ["UK", "Birmingham"], ["UK", "London"], ["US", "New York"]]</lang>
 
=={{header|Rust}}==
Rust's builtin sorts (.sort(), .sort_by(...), .sort_by_key(...)) are all stable
 
<lang rust>fn main() {
let country_city = vec![("UK", "London"),
("US", "New York"),
("US", "Birmingham"),
("UK", "Birmingham")];
 
let mut city_sorted = country_city.clone();
city_sorted.sort_by_key(|k| k.1);
 
let mut country_sorted = country_city.clone();
country_sorted.sort_by_key(|k| k.0);
 
 
println!("Original:");
for x in &country_city {
println!("{} {}", x.0, x.1);
}
 
println!("\nWhen sorted by city:");
for x in &city_sorted {
println!("{} {}", x.0, x.1);
}
 
println!("\nWhen sorted by county:");
for x in &country_sorted {
println!("{} {}", x.0, x.1);
}
}</lang>
 
Output: <pre>Original:
UK London
US New York
US Birmingham
UK Birmingham
 
When sorted by city:
US Birmingham
UK Birmingham
UK London
US New York
 
When sorted by county:
UK London
UK Birmingham
US New York
US Birmingham</pre>
 
=={{header|Scala}}==
Anonymous user