The Scala Specialists

Know Your Scala


Books, videos, training, and mentoring... everything you need to excel.

Browse our catalogue

Succeed With Scala


Professional services tailored to your business, whatever stage you're at.

Work with us

Latest from the Blog

Why 3×5 is and isn't 5×3

I recently saw this image, taken from a maths test.

The student has been asked to represent 5×3 in terms of repeated addition. They have written 5+5+5. The teacher has marked this as incorrect and given 3+3+3+3+3 as the correct answer. Like many people, when I first saw this I thought the teacher was clearly wrong. After a bit of thought I realised they were correct, and after still more thought I realised this question raises a whole lot of interesting points.

So why isn’t 3×5 the same as 5×3?

Continue reading…

SBT Tricks

We all pick up SBT tricks: the settings, commands, or clues we wish we’d figured out earlier. This post contains a section of some we use at Underscore. What lesser-known tricks do you make use of?

Continue reading…

Late Binding and Overloading in Scala

In a recent training course I was asked if Scala supports static or dynamic polymorphism. These are not terms I had heard before, so I had some homework to do. A bit of research showed this terminology refers to the same thing as early and late binding, which I’m more familiar with. So, here we have a quick discussion of early binding (or static polymorphism) and late binding (or dynamic polymorphism), and how it relates to Scala’s polymorphic methods and overloading.

Continue reading…

Our Customers

Some of our happy customers: