That is quite correct. If you look up the mathematical definition of associativity, the behaviour of the "&#60;" does not fit it. In fact associativity is only a property that can be possessed by functions or operations that operate on a particular set. Thus, both the inputs and the result of the function or operation have to belong to the set. For the "&#60;" operation, the inputs are numbers and the result is boolean. A boolean value cannot be an input for the "&#60;" operation (if you take the classical definition of "&#60;"). Therefore, "&#60;" does not operate on a particular set. Therefore "&#60;" cannot be associative.<p>The behaviour of "&#60;" the author refers to is not associativity. Therefore, the languages he criticises do not really get associativity wrong, he just needs to brush up on his math.<p>Now you can say "well, ok this behaviour is not associativity but it is a well know behaviour of "&#60;" and "&#62;". Why can't the languages get it right?" I think the answer is that this (a&#60;b&#60;c&#60;d) is one of those notations that look ok in algebra class but are really problematic if you actually try to define and use a logically consistent function notation, so it is not a problem for me, if some languages do not perform (a&#60;b&#60;c&#60;d) as expected in order to keep their semantics clean.