259154 (1) [Avatar] Offline
#1
So far I've enjoyed reading the book a lot. I really appreciate that I can follow the explanations without flipping for and back.

But the examples of using left or right associative operators confused me a little. To my understandig the key to define a right associative operator is the trailing colon. With any other symbol it becomes left associative.

I can for instance define Stringer like this:
case class Stringer(s:String) {
  def +:(c:String):Stringer = Stringer(c+s)
  def :+(c:String):Stringer = Stringer(s+c)
  def +(c:String):Stringer = Stringer(s+c)
}


and :+ and + will work equally.

At the first reading I got the impression the << >> would define the special behaviour.