@schmidh you can do something like this. I haven't figured out a way to do it
without the intermediate seq though.
import tables, typetraits
# `untyped` has to be last, so `n` and `iter` are reversed
template take(n: Natural, iter: untyped): seq[type(iter)] =
# 'take' yields the first 'n' values of 'iter'
var i = 0
var arr: seq[type(iter)] = @[]
for val in iter():
arr.add(val)
if i == n - 1:
break
i += 1
arr
var wordFrequencies = initCountTable[string]()
wordFrequencies.inc("a")
wordFrequencies.inc("b")
wordFrequencies.inc("c")
wordFrequencies.inc("d")
wordFrequencies.inc("d")
wordFrequencies.inc("e")
wordFrequencies.inc("e")
wordFrequencies.inc("e")
wordFrequencies.inc("f")
wordFrequencies.inc("f")
wordFrequencies.inc("f")
wordFrequencies.inc("f")
# fill wordFrequencies with some values ...
wordFrequencies.sort
for (word, count) in take(2, wordFrequencies.pairs):
echo count, ", ", word
# Prints
# 4, f
# 3, e
Run