I am trying the following:
proc `·`(v1,v2:tuple[x,y,z:float]):float =
v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]
echo (1.0,2.0,3.0) · (4.0,5.0,6.0)
which fails with:
/tmp/a.nim(5, 23) Error: type mismatch: got <(float64, float64, float64)>
but expected one of:
proc ·(v1, v2: tuple[x, y, z: float]): float
first type mismatch at position: 2
missing parameter: v2
expression: · (4.0, 5.0, 6.0)
On the other hand it works if I replace · with *. So it might have something to do with precedence maybe?
In any case, how can I make it work?