# [
# sugar == meaning ==> my personal opinion
#-------------------------------------------
# f a == f(a) ==> Please don't. It creates confusion and people can
live without it. It's better not to keep hidden corners.
# a.f() == f(a,b) ==> Fantastic. Though you can argue about it being
confusing (member functions etc).
# a f == f(a) ==> Functions are first class citizens. I don't know
if I like this.
# f a, b == f(a,b) ==> Please, no more confusion.
# a.f(b) == f(a,b) ==> I love it.
# a.f == f(a) ==> I don't like it. It reminds me of Class variables.
# a.f b == f(a, b) ==> Guaranteed confusion further down the road. Makes
it impossible to chain functions.
# ]
Why allow ambiguous constructs? For example in C, where int arr[5] is declared,
3[arr] == arr[3] is true. It doesn't make sense, although the explanation is
simple. However
b, c d, e f g, h
is basically unreadable.