# [
    # 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. 

Reply via email to