ProgrammingInScala.pdf
(
1990 KB
)
Pobierz
680730588 UNPDF
ProgramminginScala
DRAFT
June13,2007
MartinOdersky
P
ROGRAMMING
M
ETHODS
L
ABORATORY
EPFL
S
WITZERLAND
Contents
IRationale 1
IIScalabyExample 7
1AFirstExample 11
2ProgrammingwithActorsandMessages 15
3ExpressionsandSimpleFunctions 19
3.1ExpressionsAndSimpleFunctions......................19
3.2Parameters....................................20
3.3ConditionalExpressions............................23
3.4Example:SquareRootsbyNewton’sMethod................23
3.5NestedFunctions................................24
3.6TailRecursion..................................26
4First-ClassFunctions 29
4.1AnonymousFunctions.............................30
4.2Currying.....................................31
4.3Example:FindingFixedPointsofFunctions................34
4.4Summary.....................................36
4.5LanguageElementsSeenSoFar.......................36
5ClassesandObjects 39
6CaseClassesandPatternMatching 51
6.1CaseClassesandCaseObjects........................54
6.2PatternMatching................................55
iv
CONTENTS
7GenericTypesandMethods 59
7.1TypeParameterBounds............................61
7.2VarianceAnnotations..............................64
7.3LowerBounds..................................66
7.4LeastTypes....................................66
7.5Tuples.......................................68
7.6Functions....................................69
8Lists
71
8.1UsingLists....................................71
8.2DefinitionofclassListI:FirstOrderMethods...............73
8.3Example:Mergesort..............................76
8.4DefinitionofclassListII:Higher-OrderMethods.............78
8.5Summary.....................................85
9For-Comprehensions 87
9.1TheN-QueensProblem............................88
9.2QueryingwithFor-Comprehensions.....................89
9.3TranslationofFor-Comprehensions.....................90
9.4For-Loops....................................92
9.5GeneralizingFor.................................92
10MutableState 95
10.1StatefulObjects.................................95
10.2ImperativeControlStructures.........................99
10.3ExtendedExample:DiscreteEventSimulation...............100
10.4Summary.....................................105
11ComputingwithStreams 107
12Iterators
111
12.1IteratorMethods................................111
12.2ConstructingIterators.............................114
12.3UsingIterators..................................115
CONTENTS
v
13ImplicitParametersandConversions 117
14CombinatorParsing 121
14.1SimpleCombinatorParsing..........................121
14.2ParsersthatProduceResults.........................125
15Hindley/MilnerTypeInference 131
16AbstractionsforConcurrency 141
16.1SignalsandMonitors..............................141
16.2SyncVars.....................................143
16.3Futures......................................143
16.4ParallelComputations.............................144
16.5Semaphores...................................145
16.6Readers/Writers.................................145
16.7AsynchronousChannels............................146
16.8SynchronousChannels.............................147
16.9Workers......................................148
16.10Mailboxes....................................150
16.11Actors.......................................153
IIITheScalaLanguageSpecification
Version1.0
155
17LexicalSyntax 159
17.1Identifiers....................................160
17.2NewlineCharacters...............................161
17.3Literals......................................164
17.3.1IntegerLiterals.............................164
17.3.2FloatingPointLiterals.........................165
17.3.3BooleanLiterals.............................166
17.3.4CharacterLiterals............................166
17.3.5StringLiterals..............................166
17.3.6EscapeSequences...........................167
Plik z chomika:
n0_05
Inne pliki z tego folderu:
[Apress] Beginning Scala.pdf
(9476 KB)
Exploring Lift.pdf
(2015 KB)
ProgrammingInScala.pdf
(1990 KB)
Inne foldery tego chomika:
C#
C&C++
Clojure
D
java
Zgłoś jeśli
naruszono regulamin