user
Task

Create a function/use an in-built function, to compute the   **dot product**,   also known as the   **scalar product**   of two vectors.

If possible, make the vectors of arbitrary length.

As an example, compute the dot product of the vectors:

:   :   :   :   `[1,  3, -5]`       and
            :   `[4, -2, -1]`

If implementing the dot product of two vectors directly:

:   :   :   * each vector must be the same length
            * multiply corresponding terms from each vector
            * sum the products   (to produce the answer)

Related task

* Vector products
assistant
(formerly Perl 6)

**Works with**: Rakudo version 2010.07

We use the square-bracket meta-operator to turn the infix operator `+` into a reducing list operator, and the guillemet meta-operator to vectorize the infix operator `*`. Length validation is automatic in this form.

```
sub infix:<·> { [+] @^a »*« @^b }

say (1, 3, 5)·(4, -2, 1);
```