Programming Scala
Copyright © 2008 O’Reilly Media
This work has been released under the Creative Commons Attribution-Noncommercial.
Abstract
Programming Scala introduces an exciting new language that offers all the benefits of a modern object model, functional programming, and an advanced type system. Packed with code examples, this comprehensive book teaches you how to be productive with Scala quickly, and explains what makes this language ideal for today's highly scalable, component-based applications that support concurrency and distribution. You'll also learn the advantages that Scala offers as a language for the Java Virtual Machine.
Learn more at programmingscala.com or at the book's catalog page.
- Preface
- 1. Zero to Sixty: Introducing Scala
- 2. Type Less, Do More
- 3. Rounding Out the Essentials
- 4. Traits
- 5. Basic Object-Oriented Programming in Scala
- 6. Advanced Object-Oriented Programming In Scala
- Overriding Members of Classes and Traits
- Attempting to Override final Declarations
- Overriding Abstract and Concrete Methods
- Overriding Abstract and Concrete Fields
- Overriding Abstract and Concrete Fields in Traits
- Overriding Abstract and Concrete Fields in Classes
- Overriding Abstract Types
- When Accessor Methods and Fields Are Indistinguishable: The Uniform Access Principle
- Companion Objects
- Case Classes
- Equality of Objects
- Recap and What’s Next
- 7. The Scala Object System
- 8. Functional Programming in Scala
- What Is Functional Programming?
- Functional Programming in Scala
- Recursion
- Tail Calls and Tail-Call Optimization
- Functional Data Structures
- Traversing, Mapping, Filtering, Folding, and Reducing
- Pattern Matching
- Partial Functions
- Currying
- Implicits
- Implicit Function Parameters
- Call by Name, Call by Value
- Lazy Vals
- Recap: Functional Component Abstractions
- 9. Robust, Scalable Concurrency with Actors
- 10. Herding XML in Scala
- 11. Domain-Specific Languages in Scala
- 12. The Scala Type System
- 13. Application Design
- 14. Scala Tools, Libraries and IDE Support
- Glossary
- A. References
- Index







