Hey folks! Haven't used nim in a while and I am a little bit confused as to why the following snippet doesn't work. import tables import math let table = {"foo": 1, "bar": 2}.toTable echo sum(table.values) Run ➜ nim c -r nim_iterator_problem.nim Hint: used config file '/usr/local/Cellar/nim/1.4.2/nim/config/nim.cfg' [Conf] Hint: used config file '/usr/local/Cellar/nim/1.4.2/nim/config/config.nims' [Conf] .......... /Users/chris/src/aoc 2020/nim_iterator_problem.nim(5, 15) Error: undeclared field: 'values' found 'tables.values(t: OrderedTableRef[values.A, values.B]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(2154, 10)]' of kind 'iterator' found 'tables.values(t: CountTable[values.A]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(2565, 10)]' of kind 'iterator' found 'tables.values(t: OrderedTable[values.A, values.B]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(1746, 10)]' of kind 'iterator' found 'tables.values(t: CountTableRef[values.A]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(2841, 10)]' of kind 'iterator' found 'tables.values(t: Table[values.A, values.B]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(726, 10)]' of kind 'iterator' found 'tables.values(t: TableRef[values.A, values.B]) [declared in /usr/local/Cellar/nim/1.4.2/nim/lib/pure/collections/tables.nim(1170, 10)]' of kind 'iterator' Run
All I want to do is sum the values of a table. Of course the following works, but is there an idiomatic way of doing this without using a for-loop? var sum = 0 for val in table.values: sum += val echo sum Run