Functions in the Wolfram Language have a definite structure of arguments, in terms of how many and in which order they can be given. Some of them have so-called operator forms, whose arguments can be also given in two pairs of brackets. With the new function Curry, named after Haskell Curry, you can now use any Wolfram Language function with arguments passed in any number of pairs of brackets and any order.
The dot product of matrices and vectors is a multilinear operation. With Curry, you can make this explicit. Take a matrix and two vectors.
Construct a linear operator on vectors that corresponds to that matrix. This will be the action of Dot with two arguments, the first one being the matrix.
Arguments can also be given one by one.