By Jeff Smith
Actually using models in the real world is tough. To learn about all the complexity of using models in the real world, we’re going to need to move to the bustle of the big city. This article considers the fastest moving animals in the city, turtles.
By Joshua D. Suereth
Scala is working on language features to integrate directly with dynamic languages, but even with the 2.9.0 release, these features are considered experimental. This article from chapter 10 of Scala in Depth, focuses on an area of concern when integrating with Java—the overuse of implicit conversions to adapt Java libraries into Scala idioms.
Functional programs do not update variables or modify data structures. This raises pressing questions—what sort of data structures we use in functional programming, how do we define them can in Scala, and how do we operate over these data structures? This article, based on chapter 3 of Functional Programming in Scala, explains the concept of a functional data structure and how to define and work with such structures.
Scala 2.8 formalized the ability to encode type information into implicit parameters. Manifests were added specifically to handle arrays and generalized to be useful in other situations where the type needs to be available at runtime. In this article from chapter 7 of Scala in Depth, author Joshua Suereth shows how Manifests are useful in Scala to create abstract methods whose implementations diverge based on the types they work on, but the resulting outputs do not.
Using Manifests (PDF)
Scala is a language that blends various techniques seen from other programming languages. This article from Scala in Depth explains how Scala attempts to leap between the worlds by offering its developers object-oriented programming features, functional programming features, a very expressive syntax, statically enforced typing, and rich generics—all on top of the Java Virtual Machine.
By Joshua D. Suereth
This article is taken from the book Scala in Depth. The author explains how Google Collections API enhances the standard Java collections through immutable data structures and functional interaction with collections.