Please read this: 
<https://nim-lang.org/docs/manual.html#iterators-and-the-for-statement>

iterators are not used like procedures.
    
    
    iterator m2(x: int): int =
      for i in 1..x:
        if i mod 2 == 0:
          yield i
    
    iterator m3(x: int): int =
      for i in 1..x:
        if i mod 3 == 0:
          yield i
    
    iterator m(m, x: int): int =
      if m == 2:
        for i in m2(x):
          yield i
      else:
        for i in m3(x):
          yield i
    
    for i in m(2, 12):
      echo i
    
    Run

Reply via email to