Postfix match looks pretty cool because it performs a value-to-value computation, which conforms more or less to the principle of using postfix for method notation. That's also mostly true for try, at least in the sense that the appearance when part of a statement is value in, value out. The others do not resemble that style.
Postfix let seems a little funny to me, and it's not immediately obvious what it does. However, postfix match seems quite natural, and seems like it would allow all of the same use-cases. (One could emulate postfix let by using postfix match with a single arm.) Given that, I quite like the idea of using it to enable useful postfix macros that function solely through token substitution, and don't have surprising access to tokens outside of the macro call.
That looks completely backwards to me (no pun intended). I'm not a native English speaker but I read declarations as let foo equal to some expression. I would hate having to read them as some expression let foo.
match is weird, too. I'm matching the discriminant expression, not the variants, i.e. I read it as
match guess.cmp(…) against/with {
Ordering::Less => …,
}
and not as guess.cmp(…) match with { … }.
I think if someone likes an alternative postfix-like syntax so much that s/he likes to program in postfix, s/he could make a macro (declarative or procedural) wrapping an entire expression or function and call it a day – since this is a complete, entirely different style, and we don't need a whole other, purely syntactic split.
@kornel just changed everything to postfix indiscriminately, but in my suggestion postfix let is not a declaration - it's an expression. For declarations the posix style indeed looks weird, but for expressions it's natural and read natural if you use words like "it", "that" or "the result" to refer to the previous part of the calculation. For example:
let res = foo().let it { square(it) }.let it { round(it) }.let it { sqrt(it) };
let res = sqrt(round(square(foo())));
The first is read as "let res be defined as such: take foo(), square it, round it, than take the square root of the result of that". Which is more natural than "let res be the square root of the rounded square of foo()"
Can be read as "compare guess to goal. If it's lesser - print 'Sorry to small'. If it's greater - print 'Sorry too big'. If they are equal - print 'Spot on!'". Unlike prefix match, here you first read about the expression and then only then say that you are going to match it.
As for your concern regarding the "syntactic split", this can be a good reason to go with postfix let. Because it has different semantics than regular let, it won't split the syntax and won't become a matter of personal preferrance.
One could easily argue the opposite on this example IMO.
The current syntax reads like “Match what you got when you took guess and compared it with … against {…}”.
A postfix match would read like “Take guess, compare it with …, and match the result against {…}”.
I find the second (even a bit shorter) version nicer since things are stated in the order they happen in; especially when the discriminant expression gets even larger, starting out with match is not necessarily ideal. Ordinary match syntax even reminds me a bit of C-style error handling, where you write if (statement) {...} to handle error codes, however this programming style in C reads (to me) more like some block of code that happens optionally and does somewhat hide its main point: that is, statement is unconditionally executed here.
I guess that following this logic, a postfix if let of some sorts would be nice, too. A postfix ordinary let however would not be something that I’m in favor of.
I'd like to second the position that postfix match is by far the most readable of the postfix options here. I'd even go so far as to say match is the only one worth seriously proposing; most of the others I still struggle to read despite already knowing exactly what they mean, especially postfix let.
(I still have no idea if I'm in favor of actually adding postfix macros or postfix match, but the idea of making postfix macros less weird by expanding to postfix match is certainly intriguing and plausible)