## function DotProduct(a, b: array of real) := a.Zip(b, (x, y) -> x * y).Sum; DotProduct(|1.0, 3, -5|, |4.0, -2, -1|).println;