When you use templates, you can also use +.
    
    
    template zipwith[T1,T2](f: untyped; xs:openarray[T1], ys:openarray[T2]): 
untyped =
      let N = min(xs.len, ys.len)
      var res = newSeq[type(f(xs[0],ys[0]))](N)
      
      for i, value in res.mpairs:
        value = f(xs[i], ys[i])
      
      res
    
    var zs = zipwith(`+`,[1,2,3],[1,2,3])
    
    echo zs
    

Reply via email to