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.