I have noticed a function defined as such:
f[x_][y_] := expr;
How is the argument y in 2nd pair of brackets being used? What is the difference from defining a function this way:
f[x_, y_] := expr;
Mathematica Stack Exchange is a question and answer site for users of Wolfram Mathematica. It only takes a minute to sign up.Sign up to join this community
It allows partial function application. Observe how function test1 defined this way can be called with the first argument, resulting in the return of another function of the remaining argument. Function test2 does not, and simply returns unevaluated since no match to its pattern occurs.
Clear[test1,test2] test1[x_][y_]:=x^y test2[x_,y_]:=x^y test1 (* 8 *) test2[2,3] (* 8 *) test1 (* test1 *) % (* 8 *) test2 (* test2 *) % (* test2 *)