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

Reply via email to