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}}==
89

edits