Scala infix notation

This SKB will teach you a little more about some syntax allowed by the Scala language: infix.

It allows you to remove the . and the () when using a method.

First of all, did you realize that every operation that seems to be “magic” like the + or == are just function like any other. But by habit , we use the infix notation for those by default. It is possible to use the “normal” notation with the . and the () but let's be honest, it looks weird !

You can use the infix notation for every method that takes one argument. Which means you can use it for map, flatMap and all the other ones.

We also kind of saw it quickly previously when we talked about reduce. We saw that we could turn

list.reduce ( (a, b) => a.combineWith(b) )
into
list.reduce ( _ combinedWith _ )
You now understand one part of puzzle. The second part being the _ that we are going to see soon.

One last note, be careful not to abuse it or the code can become extremely horrible to decipher. You could chain methods are methods and lost track of which value is executing what.

a map _ combined v map _ + 1
This example is hard to read. Does combined return a list ? What is the second map applied to ? So, be careful !

It is also possible to use infix notation for function that has no arguments, but it is an extra feature, not included by default that you need to enable. To learn more, you can search for scala.language.postfixOps which allow you to use infix notation even without an argument.

Reveal more information and clues
Load Exercise