Okay. Note that all this is entirely subjective and I do not claim that any of
this is in some way, shape, or form superior to what others prefer.
# f a == f(a) ==> For commands and templates/macros that emulate
control structures and such. For functions that return values, f(a).
# a.f() == f(a) ==> I don't use it. Unnecessary parentheses hurt
readability. Note that in languages such as Eiffel, this is normal.
# a f == f(a) ==> Umm, this doesn't work?
# f a, b == f(a,b) ==> Same as above for "f a". For commands, not for
functions.
# a.f(b) == f(a,b) ==> Whenever I'm calling what is conceptually a method.
# a.f == f(a) ==> Ditto. See above about Eiffel. Uniform Access
Principle.
# a.f b == f(a, b) ==> Use it only very, very rarely for operator-like
syntax, e.g. "a .plus b".
I'm not religious about any of this. Sometimes having spaces instead of
parentheses or vice versa can help with making a long line more readable.