References - Programming Scala (2014)

Programming Scala (2014)

Appendix A. References

Abelson, Harold, Gerald Jay Sussman, and Julie Sussman, Structure and Interpretation of Computer Programs. The MIT Press, 1996.

Agha, Gul, Actors. The MIT Press, 1987.

“Akka: Build powerful concurrent & distributed applications more easily,”

Alexander, Alvin, Scala Cookbook: Recipes for Object-Oriented and Functional Programming. O’Reilly Media, 2013.


Allen, Jamie, Effective Akka. O’Reilly Media, 2013.


Barr, Michael and Charles Wells, “Category Theory for Computing Science”, 1998.

Behavior-Driven Development

Bloch, Joshua, Effective Java (Second Edition). Addison-Wesley, 2008.

Bird, Richard, Pearls of Functional Algorithm Design. Cambridge University Press, 2010.

Bjarnason, Rúnar Óli, “Stackless Scala and Free Monads”.

Bonér, Jonas, “Real-World Scala: Dependency Injection (DI)”.

Bruce, Kim, Martin Odersky, and Philip Wadler, “A Statically Safe Alternative to Virtual Types,” Proc. ECOOP ’98, E. Jul (Ed.), LNCS 1445, pp. 523–549, Springer-Verlag, 1998.

“Building bug-free O-O software: An introduction to Design by Contract”.

Chiusano, Paul and Rúnar Bjarnason, Functional Programming in Scala. Manning Publications, 2013.

Dean, Jeffrey and Sanjay Ghemawat, “MapReduce: Simplified Data Processing on Large Clusters”.

Dzilums, Lauris, “Awesome Scala”.

Easterbrook, Steve, “An introduction to Category Theory for Software Engineers”.

Eiffel Software

Effective Scala

Evans, Eric, Domain Driven Design. Prentice-Hall, 2003.

Extension Methods (C# Programming Guide)


Ford, Bryan, “The Packrat Parsing and Parsing Expression Grammars Page”.

Fowler, Martin, Domain-Specific Languages. Addison-Wesley, 2010.

Ghosh, Debasish, DSLs in Action. Manning Press, 2010.

Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides (“Gang of Four”), Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.




Haller, Philipp and Martin Odersky, “Actors That Unify Threads and Events”.

Hewitt, Carl, Peter Bishop, and Richard Steiger, “A Universal Modular Actor Formalism for Artificial Intelligence,” IJCAI ’73, August 20-23, 1973, Stanford, California, USA.

Hewitt, Carl, “Actor Model of Computation”, 2014.

Hoare, Tony, “Null References: The Billion Dollar Mistake,”

Hofer, Christian, Klaus Ostermann, Tillmann Rendel, and Adriaan Moors, “Polymorphic Embedding of DSLs”, GPCE ’08, October 19–23, 2008, Nashville, Tennessee.

Hypertext Transfer Protocol — HTTP/1.1.

Hunt, Andrew and Dave Thomas, The Pragmatic Programmer. Addison-Wesley, 2000.

Introducing Spring Scala

Iry, James, “Phantom Types in Haskell and Scala”.

Java Platform SE 8 API

The Java Tutorials. Lesson: Java Regular Expressions.

Laddad, Ramnivas, AspectJ in Action (Second Edition). Manning Press, 2009.

Lawvere, F. William and Stephen H. Schanuel, Conceptual Mathematics, A First Introduction to Categories. Cambridge University Press, 2009.

Lipovaca, Miran, Learn You a Haskell for Great Good! No Starch Press, 2011.

Liskov Substitution Principle.

Malawski, Konrad, “Scala’s Types of Types”.

Marick, Brian, Functional Programming for the Object-Oriented Programmer. Leanpub, 2012.

Martin, Robert C., Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, 2003.

Meyer, Bertrand, Object-Oriented Software Construction (Second Edition). Prentice Hall, 1997.

Naftalin, Maurice and Philip Wadler, Java Generics and Collections. O’Reilly Media, 2006.

Nilsson, Rickard, ScalaCheck: The Definitive Guide. Artima Press, 2013.

Odersky, Martin and Matthias Zenger, “Scalable Component Abstractions,” OOPSLA ’05, October 16–20, 2005, San Diego, California, USA.

Odersky, Martin, Lex Spoon, and Bill Venners, “How to Write an Equality Method in Java”.

Odersky, Martin, Lex Spoon, and Bill Venners, Programming in Scala, Second Edition. Artima Press, 2010.

Okasaki, Chris, Purely Functional Data Structures. Cambridge University Press, 1998.

O’Sullivan, Bryan, John Goerzen, and Don Steward, Real World Haskell. O’Reilly Media, 2009.

Parsing Expression Grammar

Paul, Thomas, “Working with Money in Java”.

Phillips, Andrew and Nermin Serifovic, Scala Puzzlers. Artima Press, 2014.

Pierce, Benjamin C., Types and Programming Languages. The MIT Press, 2002.

Rabhi, Fethi and Guy Lapalme, Algorithms: A Functional Programming Approach. Addison-Wesley, 1999.

Roestenburg, Raymond, Rob Bakker, and Rob Williams, Akka in Action. Manning, 2014.

S-99: Ninety-Nine Scala Problems

Sargent, Will, “Error Handling in Scala”

Scala Automatic Resource Management


The Scala Language Specification

The Scala Library

The Scala Programming Language




Shapeless: Generic Programming for Scala

Simple Build Tool

SIP-15: Value Classes



Spiewak, Daniel, “What is Hindley-Milner? (and why is it cool?)”.

Spiewak, Daniel, “Interop Between Java and Scala”.

Spiewak, Daniel, “The Magic Behind Parser Combinators”.

The Spring Framework

Suereth, Joshua, Scala in Depth. Manning Press, 2012.

Suereth, Joshua and Matthew Farwell, SBT in Action. Manning Press, 2013.

Szyperski, Clemens, Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Limited, 1998.

Taylor, Chris, “The Algebra of Algebraic Data Types”.

Turbak, Franklyn, David Gifford, and Mark A. Sheldon, Design Concepts of Programming Languages. The MIT Press, 2008.

Typesafe, Inc.

Van Roy, Peter and Seif Haridi, Concepts, Techniques, and Models of Computer Programming. The MIT Press, 2004.

Wadler, Philip, “The Expression Problem”.

Walters, R.F.C., Categories and Computer Science. Cambridge University Press, 1992.

Wampler, Dean, Introduction to Functional Programming for Java Developers. O’Reilly Media, 2011.

Theoretical Computer Science: “What’s new in purely functional data structures since Okasaki?”.

White, Tom, Hadoop: The Definitive Guide, Third Edition. O’Reilly Media, 2012.

Wirfs-Brock, Rebecca and Alan McKean, Object Design: Roles, Responsibilities, and Collaborations. Pearson Education, 2003.

Wyatt, Derek, Akka Concurrency. Artima Press, 2013.