History of Idiom 113 > diff from v16 to v17
Edit summary for version 17 by :
New Prolog implementation by user [Boris]
New Prolog implementation by user [Boris]
↷
Version 16
2016-02-16, 19:30:20
Version 17
2016-02-18, 16:58:03
Idiom #113 Iterate over map entries, ordered by values
Print each key k with its value x from an associative array mymap, in ascending order of x.
Note that multiple entries may exist for the same value x.
Idiom #113 Iterate over map entries, ordered by values
Print each key k with its value x from an associative array mymap, in ascending order of x.
Note that multiple entries may exist for the same value x.
Code
type entry struct {
key string
value int
}
type entries []entry
func (list entries) Len() int { return len(list) }
func (list entries) Less(i, j int) bool { return list[i].value < list[j].value }
func (list entries) Swap(i, j int) { list[i], list[j] = list[j], list[i] }
entries := make(entries, 0, len(mymap))
for k, v := range mymap {
entries = append(entries, entry{k, v})
}
sort.Sort(entries)
for _, e := range entries {
fmt.Println("Key =", e.key, ", Value =", e.value)
}
Code
type entry struct {
key string
value int
}
type entries []entry
func (list entries) Len() int { return len(list) }
func (list entries) Less(i, j int) bool { return list[i].value < list[j].value }
func (list entries) Swap(i, j int) { list[i], list[j] = list[j], list[i] }
entries := make(entries, 0, len(mymap))
for k, v := range mymap {
entries = append(entries, entry{k, v})
}
sort.Sort(entries)
for _, e := range entries {
fmt.Println("Key =", e.key, ", Value =", e.value)
}
Comments bubble
$ is apply operator and serves here only to save parentheses.
Comments bubble
$ is apply operator and serves here only to save parentheses.