RosettaCodeData/Task/Averages-Mode/Ursalang/averages-mode.ursa
2025-02-27 18:35:13 -05:00

20 lines
395 B
Text

let mode = fn(l) {
let m = {}
for i in l.iter() {
let old = m.get(i)
let new = if old == null {1} else {old + 1}
m.set(i, new)
}
var max = 0
var mode = null
for i in m.iter() {
if i.get(1) > max {
max := i.get(1)
mode := i.get(0)
}
}
return mode
}
print(mode([4, 6, 66, 66, 9, 22, 9, 9, 23, 43, 2, 43]))
print(mode(["abc", "def", "ghi", "abc"]))