Averages/Mode: Difference between revisions
Jakt
m (RPL: add section) |
(Jakt) |
||
Line 1,641:
1 4
</pre>
=={{header|Jakt}}==
An empty set is returned if the iterable is empty.
<syntaxhighlight lang="jakt">
fn mode<T, U>(anon iterable: U) throws -> {T} {
mut dictionary = Dictionary<T, u64>()
for item in iterable {
if dictionary.contains(item) {
dictionary[item]++
} else {
dictionary[item] = 1
}
}
mut items = dictionary.iterator()
let mode = items.next()
if not mode.has_value() {
let empty_set: {T} = {}
return empty_set
}
mut modes = [mode.value()]
for item in items {
if item.1 > modes[0].1 {
modes = [item]
} else if item.1 == modes[0].1 {
modes.push(item)
}
}
mut mode_set: {T} = {}
for mode in modes {
mode_set.add(mode.0)
}
return mode_set
}
fn main() {
println("{}", mode<i64>([1, 3, 6, 6, 6, 6, 7, 7, 12, 12, 17]))
println("{}", mode<i64>([1, 1, 2, 4, 4]))
let empty_array: [i64] = []
println("{}", mode<i64>(empty_array))
let test_string = "abcabbcaca"
println("{}", mode<u32>(test_string.code_points()))
}
</syntaxhighlight>
=={{header|Java}}==
|