To add to @Szabolcs Horvát nice explanation, representation of f[x_, y_] as f[x_][y_] is called currying. There is example in docs that mentions it: Use Rules Iteratively.
f[x_, y_]
f[x_][y_]