Table of contents : Contents......Page 7 Why Scala?......Page 11 What's Scala?......Page 14 Functional Programming......Page 19 What's in This Book?......Page 22 Acknowledgments......Page 24 Downloading Scala......Page 26 Installing Scala......Page 27 Take Scala for a Ride......Page 28 Scala on the Command Line......Page 30 Running Scala Code as a Script......Page 31 Compiling Scala......Page 32 Scala as Concise Java......Page 34 Scala Classes for Java Primitives......Page 37 Tuples and Multiple Assignments......Page 38 Strings and Multiline Raw Strings......Page 40 Sensible Defaults......Page 41 Operator Overloading......Page 43 Scala Surprises for the Java Eyes......Page 45 Creating Classes......Page 53 Defining Fields, Methods, and Constructors......Page 54 Extending a Class......Page 57 Singleton Object......Page 58 Stand-Alone and Companion Objects......Page 60 static in Scala......Page 61 Sensible Typing......Page 63 Collections and Type Inference......Page 64 The Any Type......Page 66 More About Nothing......Page 67 Option Type......Page 68 Method Return Type Inference......Page 69 Passing Variable Arguments (Varargs)......Page 70 Variance of Parameterized Type......Page 71 Moving from Normal to Higher-Order Functions......Page 75 Function Values......Page 76 Function Values with Multiple Parameters......Page 78 Currying......Page 80 Reusing Function Values......Page 81 Positional Notation for Parameters......Page 83 Execute Around Method Pattern......Page 84 Partially Applied Functions......Page 87 Closures......Page 88 Traits......Page 91 Selective Mixins......Page 94 Decorating with Traits......Page 95 Method Late Binding in Traits......Page 97 Implicit Type Conversions......Page 99 Common Scala Collections......Page 103 Using a Set......Page 104 Using a Map......Page 106 Using a List......Page 108 The for Expression......Page 113 Matching Literals and Constants......Page 116 Matching a Wildcard......Page 117 Matching Tuples and Lists......Page 118 Matching with Types and Guards......Page 119 Pattern Variables and Constants in case Expressions......Page 120 Matching Using case Classes......Page 121 Matching Using Extractors......Page 124 Regular Expressions......Page 128 Regular Expressions as Extractors......Page 129 Promote Immutability......Page 131 Concurrency Using Actor......Page 133 Message Passing......Page 137 The Actor Class......Page 139 The actor Method......Page 141 receive and receiveWithin Methods......Page 144 react and reactWithin Methods......Page 146 loop and loopWhile......Page 151 Controlling Thread of Execution......Page 153 Choosing Among the Receive Methods......Page 154 Using Scala Classes in Scala......Page 156 Using Java Classes in Scala......Page 159 Using Scala Classes in Java......Page 161 Extending Classes......Page 165 Using JUnit......Page 167 Start with a Canary Test......Page 169 Using Runner......Page 170 Asserts......Page 172 Exception Tests......Page 174 Sharing Code Between Tests......Page 176 Functional Style with FunSuite......Page 178 Running ScalaTests Using JUnit......Page 179 Exception Handling......Page 183 Mind the Catch Order......Page 186 Getting Users' Input......Page 187 Reading and Writing Files......Page 188 XML as a First-Class Citizen......Page 190 Reading and Writing XML......Page 193 Getting Stock Prices from the Web......Page 196 Making the Net Asset Application Concurrent......Page 199 Putting a GUI on the Net Asset Application......Page 201 Web Resources......Page 211 Bibliography......Page 213 A......Page 215 C......Page 216 F......Page 217 M......Page 218 O......Page 219 S......Page 220 U......Page 221 Y......Page 222