Access last variable in a pure function
So, maybe f = {##}[[-1]] &
is what you are looking for.
Defining f2
in terms of f1
and c
can be also obtained by using
f2 = With[{args = {##}}, f1 @@ Most[args] Last[args]] &
although, admittedly, using Part
seems more natural.
Another way to achieve the same end is using patterns:
f2 = With[{args = {##}}, args /. {x__, y_} :> f1@x y] &
Although both definitions 'work', they feel like 'workarounds'; It would be really interesting to see a purely functional solution to this problem, if that is possible that is.