\documentclass[a4paper,12pt,twoside,titlepage]{book} \usepackage{scaladoc} \usepackage{fleqn} \usepackage{modefs} \usepackage{math} \usepackage{scaladefs} \renewcommand{\todo}[1]{} \ifpdf \pdfinfo { /Author (Martin Odersky) /Title (Programming in Scala) /Keywords (Scala) /Subject () /Creator (TeX) /Producer (PDFLaTeX) } \fi \renewcommand{\doctitle}{Programming in Scala\\[33mm]\ } \renewcommand{\docauthor}{Martin Odersky\\[53mm]\ } \begin{document} \frontmatter \makedoctitle \clearemptydoublepage \tableofcontents \mainmatter \sloppy \part{Rationale} \input{RationalePart} \paragraph{Acknowledgments} Many people have contributed to the definition and implementation of the Scala language and to parts of this book. First of all, I would like to thank the Scala team at EPFL consisting of Philippe Altherr, Vincent Cremet, Burak Emir, St\'ephane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, and Matthias Zenger. They put a lot of effort in the Scala compiler, tools, and documentation and have contributed in an essential way to the specification of the Scala language through many observations, clever suggestions, and discussions. Members of the team have also contributed examples in this book, as well as parts of the specification. Phil Bagwell, Gilad Bracha, Erik Ernst, Erik Mejer, Benjamin Pierce, Enno Runne, and Phil Wadler have given very useful feedback on the Scala design. The documentation ows a great debt to Abelson's and Sussman's wonderful book ``Structure and Interpretation of Computer Programs''\cite{abelson-sussman:structure}. I have adapted several of their examples and exercises in the ``Scala By Example'' part of this book. Of course, the working language has in each case been changed from Scheme to Scala. Furthermore, the examples make use of Scala's object-oriented constructs where appropriate. \part{Scala by Example} Scala is a programming language that fuses elements from object-oriented and functional programming. This part introduces Scala in an informal way, through a sequence of examples. Chapters~\ref{chap:example-one} and \ref{chap:example-auction} highlight some of the features that make Scala interesting. The following chapters introduce the language constructs of Scala in a more thorough way, starting with simple expressions and functions, and working up through objects and classes, lists and streams, mutable state, pattern matching to more complete examples that show interesting programming techniques. The present informal exposition is complemented by the Scala Language Reference Manual which specifies Scala in a more detailed and precise way. \input{ExamplesPart} \part{The Scala Language Specification \\ \ \\ \Large Version 1.0} \input{ReferencePart} \bibliographystyle{alpha} \bibliography{Scala} \input{ReferencePartAppendix} \end{document}