As noted in other comments, a bunch of languages has it, but the problem with this syntax is that it doesn't generalize well. For example, let's say we have:
foo(%1, bar(%1, 42))
does this desugar to:
|x| foo(x, |y| bar(y, 42))
or to:
|x| foo(x, bar(x, 42))
and do you trust the person reading this code later to remember which one it is?