How to model type-safe enum types?

I must say that the example copied out of the Scala documentation by skaffman above is of limited utility in practice (you might as well use case objects). In order to get something most closely resembling a Java Enum (i.e. with sensible toString and valueOf methods — perhaps you are persisting the enum values to … Read more

How to use java.String.format in Scala?

While all the previous responses are correct, they’re all in Java. Here’s a Scala example: val placeholder = “Hello %s, isn’t %s cool?” val formatted = placeholder.format(“Ivan”, “Scala”) I also have a blog post about making format like Python’s % operator that might be useful.

What is Scala’s yield?

I think the accepted answer is great, but it seems many people have failed to grasp some fundamental points. First, Scala’s for comprehensions are equivalent to Haskell’s do notation, and it is nothing more than a syntactic sugar for composition of multiple monadic operations. As this statement will most likely not help anyone who needs … Read more

What does “coalgebra” mean in the context of programming?

Algebras I think the place to start would be to understand the idea of an algebra. This is just a generalization of algebraic structures like groups, rings, monoids and so on. Most of the time, these things are introduced in terms of sets, but since we’re among friends, I’ll talk about Haskell types instead. (I … Read more

Read entire file in Scala?

val lines = scala.io.Source.fromFile(“file.txt”).mkString By the way, “scala.” isn’t really necessary, as it’s always in scope anyway, and you can, of course, import io’s contents, fully or partially, and avoid having to prepend “io.” too. The above leaves the file open, however. To avoid problems, you should close it like this: val source = scala.io.Source.fromFile(“file.txt”) … Read more

What is the apply function in Scala?

Mathematicians have their own little funny ways, so instead of saying “then we call function f passing it x as a parameter” as we programmers would say, they talk about “applying function f to its argument x“. In mathematics and computer science, Apply is a function that applies functions to arguments. Wikipedia apply serves the … Read more

What is the formal difference in Scala between braces and parentheses, and when should they be used?

I tried once to write about this, but I gave up in the end, as the rules are somewhat diffuse. Basically, you’ll have to get the hang of it. Perhaps it is best to concentrate on where curly braces and parenthesis can be used interchangeably: when passing parameters to method calls. You may replace parenthesis … Read more