Haskell allows using any function as an infix operator, without declaring it
infix or giving it a nonalphanumeric name:
x `mod` 3 is the same as
mod x 3, for any
mod. I used to think this was a silly extravagance of syntax, but I've come to like it, and to use it frequently in pseudocode. Like the pipe operator, it lets me write operations in a more natural order, and this is important enough to be worth a little syntactic complexity. With a suitably low precedence, it can also save a few parentheses, which is convenient, especially when writing code on paper, where balancing parentheses is hard.
The backquotes still seem odd to me, probably because I confuse them with the output-of-a-command operator in the Bourne shell and Perl. I currently prefer a colon suffix:
x mod: 3, like Smalltalk. (However, I also sometimes use that for keyword arguments, as I prefer
sort xs key: cost to
sort xs :key cost.)
Scala almost does this without requiring an explicit infixifier at all, as it uses mere juxtaposition to mean method call:
x mod 3 is
x.mod(3) (which happens not to work, since there is no
Integer.mod). However, this doesn't work for functions in general, as Scala distinguishes them from methods. And of course it conflicts with using juxtaposition as ordinary prefix function call, which is a far more important and more general (because it allows arbitrary numbers of arguments) construct than infix.
Update 25 March: R also has an infixifier:
a %f% b is