summaryrefslogtreecommitdiff
path: root/doc/reference/ProgrammingInScala.tex
blob: ce88840053b235f83ad45c29adf63f67375d086c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
\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}