a b c d e f g h i j k l m n o p q r s t u v w x y z
! (message send)
on trait
Actor
! (invert)
on class
Boolean
! (message send)
on trait Actor
!= (not equals)
method on
Any 1 2
" (string delimiter)
""" (raw string delimiter)
@ (at sign)
in annotations
to extract XML
attributes
| (alternative composition)
parser combinator
| (alternative composition)
parser
combinator
| (bitwise-or)
on integral types
|| (logical-or)
on class Boolean
' (character delimiter)
() (empty parentheses)
on method definitions
a b c d e f g h i j k l m n o p q r s t u v w x y z
() (unit value)
* (repeat)
on class String
* (repeated
parameter)
* (times)
on numeric types
** (intersect)
on trait collection.Set
+ (add element)
on traits mutable.Map and immutable.Map
on traits mutable.Set
and immutable.Set
on traits mutable.Set and immutable.Set
+ (covariant in)
variance annotation
List's type parameter
+ (plus)
on numeric types
++ (add elements)
on traits mutable.Map and immutable.Map
on traits mutable.Set and immutable.Set
++= (add elements to)
on trait mutable.Map
on trait mutable.Set
+: (prepend)
a b c d e f g h i j k l m n o p q r s t u v w x y z
on class ListBuffer
+= (add element to)
on trait mutable.Map
on trait mutable.Set
+= (add to)
on trait mutable.Set
reassignment with immutable sets and vars
+= (append)
on class ArrayBuffer
on class
ListBuffer 1 2
- (contravariant in)
variance annotation
- (minus)
on numeric types
- (remove element)
on traits mutable.Map and immutable.Map
on traits mutable.Set and immutable.Set
— (remove elements)
on traits mutable.Map and immutable.Map
on traits mutable.Set and immutable.Set
—= (remove elements from)
on trait mutable.Map
on trait mutable.Set
-= (remove element from)
a b c d e f g h i j k l m n o p q r s t u v w x y z
on trait mutable.Map
on trait mutable.Set
-> (map to)
in
implicit conversion
/ (divided by)
on numeric types
/: (fold left)
on class List
: (colon)
in type annotations
:: (cons) class
as pattern constructor
subclass of List
:: (cons) method
on class
List 1 2
right associativity of
1 2
::: (concatenation)
on class
List 1 2 3
:\ (fold right)
on class List
; (semicolon)
inference
< (less than)
on numeric types
a b c d e f g h i j k l m n o p q r s t u v w x y z
<- (in)
in for expressions
<: (upper bound)
<< (shift left)
on integral types
<= (less than or equal to)
on numeric types
<% (view bound)
= (variable assignment)
== (equals)
in set membership
== (equals)
in Scala versus Java
in-depth treatment
method on
Any 1 2 3
quick introduction
=== (triple equals)
in ScalaTest suites
=> (right arrow, or ``rocket'')
in function literals
in import statements
in self types
in match alternatives
in this aliasing
a b c d e f g h i j k l m n o p q r s t u v w x y z
> (greater than)
on numeric types
>: (lower bound)
>= (greater than or equal to)
on numeric types
>> (shift right)
on integral types
>>> (unsigned shift right)
on integral types
# (pound sign)
in inner class type names
$tag method
on trait ScalaObject
% (remainder)
on numeric types
& (bitwise-and)
on integral types
&& (logical-and)
on class Boolean
_ (underscore)
in curried functions
in existential types
in function literals
1 2
in identifiers
a b c d e f g h i j k l m n o p q r s t u v w x y z
in import statements
in match expressions
used to initialize a field to its default value
_* (underscore asterisk)
in XML pattern
matching
repeated parameter
sequence
wildcard pattern
_1, _2, etc.(tuple accessors)
_= (underscore equals)
in setter method names
^ (exclusive-or)
on integral types
^^
(result conversion, or ``eyebrows'')
parser combinator
~ (bitwise complement)
on integral types
~ (sequential composition, or ``squiggle'')
parser combinator
1 2
~! (committed sequential composition)
parser
combinator
~> (sequential composition
right)
parser combinator
1 2
<~
(sequential composition left)
parser combinator
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
\ (extract)
on class Elem
\\ (deep extract)
on class Elem
{} (curly braces)
and variable scope
in class
definitions
in imports
in XML
patterns
in XML literals
instead of parentheses in method invocations
instead of parentheses in for expressions
` (back tick)
in identifiers
Abelson, Harold
1 2
abs method
on class Double (via RichDouble)
on class
Int (via
RichInt)
1 2
abstract
members
abstract modifier
not needed on abstract methods,
fields, or types
not needed on abstract methods, fields, or types
on classes
with override modifier on members of traits
a b c d e f g h i j k l m n o p q r s t u v w x y z
abstract types
access modifiers
accessor methods
Actor trait
methods
!
(message send)
! (message send)
actor
act
loop
react
receiveWithin
receive
start
actors
1 2 3 4
addString method
on class List
Aho, Alfred
1 2
aliases
AnyRef for Object
int for Int, etc.
type
1 2 3
aliasing
object,
see defensive copies
a b c d e f g h i j k l m n o p q r s t u v w x y z
this
alphabetic versus symbolic names
alternatives
catch-all
definition of
in
match expressions
1 2
in catch clauses
in partial function literals
annotations
and reflection
applied to expressions
arguments to
@BeanProperty
@deprecated
in meta-programming
in testing
Java-specific
@serializable 1 2
@SerialVersionUID
standard
syntax of
@Test
in JUnit 4
in TestNG
a b c d e f g h i j k l m n o p q r s t u v w x y z
@throws
@transient
type
1 2 3
for debugging
@unchecked 1 2 3
variance
@volatile
anonymous classes
anonymous functions,
see function literals
ANTLR
Any class
in Scala class hierarchy diagram
AnyRef class
as alias of Object
in Scala class hierarchy diagram
AnyVal class
in Scala class hierarchy diagram
application
function to arguments
partial function
1 2
Application trait
1 2
applications, Scala
apply method
called with parentheses
a b c d e f g h i j k l m n o p q r s t u v w x y z
in extractors
on
Array
class
object
on
List
class
object
1 2 3
on
Map
objects
traits
1 2
on Set objects
on trait PartialFunction
on FunctionN traits
args variable
in scripts
arguments
command line, in scripts
variable length
versus parameters
arithmetic operations (
+,
-,
*,
/,
%)
on numeric types
Array class
ArrayBuffer class
arrays
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
accessed with () not []
cloning
converting to lists
creating and initializing
passing elements as arguments with _*
quick introduction
asInstanceOf method
on class Any
assert method
on object
Predef 1 2
AssertionError
class
assertions
1 2
assignment
result is unit value
associativity
right versus left
1 2
asynchronous messages
attributes
XML
1 2
automatic
boxing
conversion,
see implicit conversion
imports
auxiliary constructors
a b c d e f g h i j k l m n o p q r s t u v w x y z
backtracking
base classes,
see superclasses
BDD,
see behavior-driven development
BeanProperty annotation
BeanProperty annotation
Beck, Kent
behavior-driven
development
Beust, Cedric
BigInt class
BigInteger class
Bison
bitwise operations, on integral types
logical (&, |, ^, ~)
shift (<<, >>, >>>)
blank finals (Java)
not in Scala
Bloch, Joshua
1 2 3
blocks, definition of
Boolean class
1 2
boolean literals
bottom types
bound variables
1 2
boxing, of value types
Bracha, Gilad
a b c d e f g h i j k l m n o p q r s t u v w x y z
break keyword (Java)
living without
not in match expressions
ButtonClicked class
by-name parameters
1 2
by-value parameters
Byte class
1 2
C
language
parser generators
C language
C++ language
1 2
C# language
enumerations
properties
static extension methods
Callahan, Harry
camel casing
capitalization, of identifiers
capitalize method
on class Int (via RichInt)
case
classes
case classes
and actors
versus extractors
a b c d e f g h i j k l m n o p q r s t u v w x y z
cases,
see alternatives
casting,
see also toInt,
toChar,
etc.
with asInstanceOf
with typed patterns (the preferred style)
catch clauses
Cathedral and the Bazaar, The (Raymond)
Char class
1 2
character encoding
in
XML
character literals
escape sequences
checked exceptions
1 2
Church, Alonzo
Class class,
see classOf method
class hierarchy diagram
for collections
for iterators
for lists
for maps
for Scala
for sets
class parameters
initialization order compared to abstract fields
not legal on singleton
objects
a b c d e f g h i j k l m n o p q r s t u v w x y z
used to implement abstract fields
classes
abstract
1 2
annotating
anonymous
case
companion
generic
inner,
see inner classes
nesting of
private
sealed
classOf method
on object
Predef 1 2
clear method
on mutable Set trait
closures
1 2
versus Java's inner classes
code duplication
reducing
1 2
collections
class hierarchy diagram
combinators
companion
objects
a b c d e f g h i j k l m n o p q r s t u v w x y z
companion classes
companion objects
and
implicit conversion
and factory methods
visibility
compare method
of trait
Ordered 1 2
compatibility, Scala with Java
1 2
compiler
errors
class ...needs to be abstract, since method ...in class ...of type ...is not
defined
compiler
warnings
non variable type-argument ...in type pattern is unchecked since it is eliminated
by erasure
compiler errors
overloaded method value ...with alternatives ...cannot be applied to ...
';' expected but ',' found
...is already defined as ...
...is not a legal prefix for a constructor
class ...is abstract; cannot be instantiated
class type required
constructor ...cannot be accessed in ...
covariant type ...occurs in contravariant
position in type ...of parameter of setter ...
covariant type ...occurs in contravariant
position in type ...of value ...
1 2
error overriding
method ...in class ...of type ...method ...needs 'override' modifier
error overriding method ...in class ...of type ...method ...
cannot override final member
a b c d e f g h i j k l m n o p q r s t u v w x y z
illegal inheritance from final class
inferred type arguments
...do not conform to method ...type parameter bounds ...
method ...overrides nothing
1 2
missing arguments for method ...follow this method with '_' if you want to
treat it as a partially applied function
no implicit argument
matching parameter type ...was found
no implicit argument matching parameter type ...was found
1 2
not found: value ...
1 2
overloaded method value ...with
alternatives ...cannot be applied to ...
pattern is unchecked since it is eliminated by erasure
reassignment to val
1 2
trait ...takes type parameters
type mismatch
1 2 3 4 5 6 7 8 9 10 11 12
unreachable code
value ...is not a member of ...
1 2
compiler warnings
match is not exhaustive
1 2
non variable type-argument ...
in type pattern is unchecked since it is eliminated by erasure
there
were unchecked warnings; re-run with -unchecked for details
Compilers: Principles, Techniques, and Tools (Aho, et. al.)
compiling
complexity, managing
Component class
composition
1 2
mixin,
see mixin composition
a b c d e f g h i j k l m n o p q r s t u v w x y z
concat method
on object List
conciseness
Scala versus Java
concurrency
actors model
1 2
and testing
shared data and locks
shared-nothing
ConcurrentHashMap class
configuring
to wire modules together
with Scala code
cons (
::) method
on class
List 1 2 3 4
right
associativity of
short for construct
Console object
constant patterns
1 2
constants
constructor patterns
1 2
constructors
auxiliary
in Java versus Scala
a b c d e f g h i j k l m n o p q r s t u v w x y z
invoking superclass
primary
private
Container
trait
contains method
on Map traits
contains method
on Set traits
contents property
on trait Container
context-free grammars
continue keyword (Java)
living without
contravariance
1 2
control abstraction
1 2
conventions, identifier capitalization
conversion
implicit
1 2
to target type
copyToArray method
on class List
count method
on class List
covariance
a b c d e f g h i j k l m n o p q r s t u v w x y z
of arrays in Java
of function result type
of lists
1 2
creating and initializing
arrays
lists
maps
objects with factories
1 2
objects with new
sets
singleton objects
tuples
curly braces
and variable scope
in class definitions
in imports
in XML literals
in XML patterns
instead of parentheses in method invocations
instead of parentheses in for expressions
currying
1 2
data
structures
fully persistent
semi-structured
a b c d e f g h i j k l m n o p q r s t u v w x y z
deadlock
1 2
deafTo method
on Reactor
declarations, versus definitions
decrementing
with
-= 1, not
—,
see incrementing
def keyword
1 2
annotating
default values
of fields
defensive copies
definitions, versus declarations
dependency injection
deprecated
annotation
1 2
dequeue method
on class Queue
DeRemer,
Frank
derived classes,
see subclasses
deserialization
XML
Design Patterns (Gamma, et. al.)
Dijkstra, Edsger
Dirty Harry
divide and conquer principle
a b c d e f g h i j k l m n o p q r s t u v w x y z
do-while loops
domain objects
Domain-Driven Design (Evans)
domain-specific languages
a little language for digital circuits
and implicit conversions
defining an external DSL with parser combinators
embedded in Scala
in Smalltalk and Lisp
parser combinators as an internal DSL
rich wrappers and
internal versus external DSLs
Double class
downloading
Scala
source code for book examples
drop method
on
class List
on class List
dropRight method
on class List
dropWhile method
on class List
DSLs,
see domain-specific languages
dynamic
a b c d e f g h i j k l m n o p q r s t u v w x y z
binding
1 2
typing
1 2 3 4
Eastwood, Clint
Eckel, Bruce
Eclipse IDE
1 2
EditDone class
Effective Java, Second Edition (Bloch)
1 2
Effective C++ (Meyers)
Effective
Java, Second Edition (Bloch)
efficiency
and hash consing
and trait ScalaObject
of abstract classes versus traits
1 2
of arrays
1 2
of case classes versus extractors
of class
ListBuffer 1 2
of fold left and right
of functional on the outside,
imperative on the inside approach
of immutable objects
of lists
of LL(1) versus backtracking parsers
of looping versus recursion
of maps
of merge versus insertion sort
a b c d e f g h i j k l m n o p q r s t u v w x y z
of sets
of tail versus non-tail recursion
of thread creation and switching
of value types
1 2 3 4
Eiffel language
Elem class
1 2
Elem type
in trait
Parsers
elements method
on class List
on trait Iterable
elements, XML
else clauses
embedded DSLs,
see domain-specific languages
empty method
on
Map objects
1 2
on
Set objects
1 2
empty-paren methods
enclosing instances,
see inner classes
enqueue method
on class Queue
ensuring method
on object Predef
entities
a b c d e f g h i j k l m n o p q r s t u v w x y z
enum keyword (Java),
see Enumeration class
Enumeration class
eq method
on class
AnyRef 1 2 3
equality,
see also equals method
!= (not equals) method
on class
Any 1 2
== (equals) method
on class
Any 1 2 3
=== (triple equals) method
in ScalaTest suites
eq method
on class
AnyRef 1 2 3
in Scala versus Java
in-depth treatment
ne method
on class
AnyRef 1 2
quick introduction
1 2
value versus reference
equals method,
see also equality
generated for case classes
on class
Any 1 2 3
contract of
recipe for writing
a b c d e f g h i j k l m n o p q r s t u v w x y z
erasure
and pattern matching
Erlang language
1 2 3
and actors
errata, viewing and reporting
errors,
see also compiler errors
handling with exceptions
in
parsing
preventing
escape sequences, for character literals
Evans, Eric
event
sources
event handling
1 2
event listeners
example code, for book
downloading
license of
exception
handling
and checked exceptions
exception handling
existential types
1 2
exists method
on class
List
on class
RichString
a b c d e f g h i j k l m n o p q r s t u v w x y z
on class
List 1 2
exists2 method
on object List
extends keyword
external DSLs,
see domain-specific languages
extractors
and injections
extractor
pattern
extractor pattern
F# language
1 2
factory
objects
factory methods
1 2
Failure class
false value
fields
abstract
defining
initializing to default values with an underscore
overriding
parametric
1 2
pre-initialized
private
1 2
FileReader class
files
a b c d e f g h i j k l m n o p q r s t u v w x y z
ensuring closed with finally
opening
reading lines from
filter method
on class
List 1 2
translating for expressions to invocations of
filters
in
for expressions
in for expressions
final modifier
on variables (Java),
see vals
finally clauses
find method
on class List
findAllIn method
on class
Regex
findFirstIn method
on
class Regex
findPrefixOf method
on class
Regex
first-order methods
on class
List
flatMap method
on class List
a b c d e f g h i j k l m n o p q r s t u v w x y z
translating for expressions to invocations of
flatten method
on object
List
on object List
Flex
Float class
floating-point literals
floatingPointNumber method
in trait
JavaTokenParsers 1 2
fold
left
right
foldLeft method
on class List
foldRight method
on class List
for expressions
translated before type checking
types valid after ->
for expressions
1 2 3
and
extractors
and XML patterns
notation
using patterns in
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
for loops
forall method
on class
List 1 2
forall2 method
on object List
foreach method
on class Array
on class
List 1 2
translating for expressions to invocations of
formatted method
on
Any (via StringAdd)
formatting strings
forSome keyword
Fortran language
Fowler, Martin
free variables
fsc (fast Scala compiler)
fully qualified names
function
literals
underscores in
function literals
and closures
for partial functions
placeholder syntax
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
syntax of
underscores in
versus function values
function values
1 2
and closures
functional
programming
lazy initialization
functional programming
1 2
main ideas of
functional style
combining with imperative style
in
parsing
methods without side effects
recognizing
refactoring functional style to
functions
basic form of
first-class
1 2
higher-order
local
partial
partially applied
1 2
predicates
procedures
a b c d e f g h i j k l m n o p q r s t u v w x y z
pure
recursive
tail recursive
Gamma,
Erich
Gamma, Erich
generator, in for
expressions
generic
types
generic types
getLines method
on object Source
getter methods
1 2 3 4
Goetz, Brian
Gosling, James
1 2
graphical user
interfaces,
see user interfaces
Groovy language
``Growing a language'' (Steele)
GUI programming,
see user
interfaces
Guice
Haller,
Philipp
handlers, exception,
see catch clauses
hash consing
hashCode method
caching
generated for case classes
a b c d e f g h i j k l m n o p q r s t u v w x y z
if overriding equals
on class Any
contract of
recipe for writing
HashMap class
in class hierarchy diagram
HashSet class
creating and initializing immutable
in class hierarchy diagram
Haskell
language
Haskell language
1 2
as a lazy functional language
hasNext method
on trait
Iterator
head method
on class
List 1 2 3
Hejlsberg, Anders
Hibernate
hiding
names in import clauses
names in nested packages
variables in nested
blocks
higher-kinded types,
see http:// booksites.artima.com/ programming_in_scala
higher-order
functions
a b c d e f g h i j k l m n o p q r s t u v w x y z
higher-order methods
on class
List
identifiers
alphanumeric
capitalization conventions for
literal (with back ticks)
mixed
operator
identity
function, for implicit conversions
of objects, testing with eq method
idioms,
see patterns and idioms
if expressions
1 2 3
immutability
as functional style
selecting mutable versus immutable collections
trade-offs
imperative style
combining with functional style
recognizing
refactoring to functional style
implements keyword (Java),
see mixin composition
implicit keyword
1 2
implicit
conversion
a b c d e f g h i j k l m n o p q r s t u v w x y z
in-depth treatment
to rich wrappers
implicit conversion
1 2
a word of caution
quick introduction
to target type
implicit parameters
imports
1 2
hiding clauses
implicit
1 2
on-demand (i.e., wildcard)
renaming clauses
selector clauses
incrementing
with += 1, not ++
indices method
on class List
inference
semicolon
1 2
turning off
type
1 2
Hindley-Milner style
the algorithm
infix operator notation
a b c d e f g h i j k l m n o p q r s t u v w x y z
information hiding
1 2
with factory methods
inheritance
and self types
extending classes
mixing in traits
versus composition
inheritance hierarchy diagram,
see class hierarchy diagram
init method
on class
List 1 2
initialization
lazy
of abstract vals
of arrays
of classes,
see constructors
of fields to default values
of instance variables with constructor parameters,
see class parameters
of lists
of maps
of sets
1 2
of traits
initializers
injections
inner classes
a b c d e f g h i j k l m n o p q r s t u v w x y z
accessing outer class members with a this alias
and path-dependent types
and private members
example of
granting access to private members of inner classes
private, to hide implementation
insertion sort
1 2
instance variables
instanceOf (Java),
see type tests
Int class
1 2
int, alias for Int
integer literals
IntelliJ IDE
interfaces (Java),
see traits
internal DSLs,
see domain-specific languages
interoperability, Scala with
Java
interpreter
invoking a superclass constructor
is-a relationships
isDefinedAt method
on trait
PartialFunction 1 2
isEmpty method
on class
List 1 2 3
on Map traits
a b c d e f g h i j k l m n o p q r s t u v w x y z
isInstanceOf method
on class Any
Iterable trait
in class hierarchy diagram
Iterator class
in class hierarchy diagram
Java
language
1 2
ANTLR
concurrency utilities
exception handling
Swing framework
wildcards
javac
Java Concurrency in Practice (Goetz)
Java language
bytecodes
concurrency
utilities
covariance of arrays
dependency
injection in
enumerations
inner classes
interfaces and Scala traits
interoperability with
Scala
interoperability with Scala
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
raw types
1 2
static methods
threading model
throws keyword
value types
wildcard types
Java Persistence Architecture
JavaBeans
JavaScript Object
Notation,
see JSON
JavaTokenParsers
trait
JFlex
Joy, Bill
JSON
JUnit
1 2 3
Kay, Alan
1 2
keys method
on Map traits
keySet method
on Map traits
keywords, using as identifiers
Label class
LALR(1) parsers
lamda calculus
Landin, Peter
a b c d e f g h i j k l m n o p q r s t u v w x y z
last method
on class
List 1 2
layouts, in GUIs
lazy modifier
lazy functional
languages
length method
on class
List 1 2
Lex
lexical
analysis
lexical analysis
linearization, of traits
linked lists
linking
of modules at runtime
Liskov Substitution Principle
and equals
method
Lisp language
1 2
List class,
see also lists
1 2
first-order methods on
higher-order methods on
immutability
implementation of
methods
/: (fold left)
a b c d e f g h i j k l m n o p q r s t u v w x y z
::: (concatenation)
1 2 3
:\ (fold right)
addString
apply
copyToArray
count 1 2 3
drop 1 2
dropRight
dropWhile
elements
exists 1 2
filter 1 2
find
flatMap
foldLeft
foldRight
forall 1 2
foreach 1 2
head 1 2
indices
init 1 2
isEmpty 1 2
last 1 2
length
a b c d e f g h i j k l m n o p q r s t u v w x y z
map 1 2
mkString 1 2
partition
reduceLeft
remove
reverse 1 2
sort 1 2
span
splitAt
tail 1 2
take
takeWhile
toArray
toString
zip
:: (cons)
1 2
List object
methods
apply 1 2 3
concat
exists2
flatten 1 2
forall2
make
a b c d e f g h i j k l m n o p q r s t u v w x y z
map2
range 1 2
unzip
ListBuffer class
1 2 3
listenTo method
on
Reactor 1 2
lists,
see also List class
1 2
appending
to
class hierarchy diagram
concatenation (:::)
converting
to arrays
converting to strings
creating and initializing
diagram
showing linked-list structure
in-depth treatment
passing elements as arguments with _*
table of methods
ListView class
literal method
on trait
RegexParsers
literals
array
boolean
character
a b c d e f g h i j k l m n o p q r s t u v w x y z
class,
see classOf method
floating point
identifier
integer
list
string
symbol
XML
little languages,
see domain-specific languages
LL(1)
grammars
loadFile method
on XML
loan pattern
local functions
local variables
locks, and shared data
logical operations (
&&,
||,
!)
on class Boolean
Long class
lower bounds
LSP,
see Liskov Substitution Principle
magic numbers
main method
of GUI applications
a b c d e f g h i j k l m n o p q r s t u v w x y z
of Scala applications
MainFrame class
attributes
contents
title
make method
on object List
map method
on class
List 1 2
translating for expressions to invocations of
Map objects
1 2
Map traits,
see maps
map2 method
on object List
maps
1 2 3
class hierarchy diagram
creating and initializing immutable
creating and initializing mutable
in library, not language
mutability modeled in hierarchy
table of methods
match expressions
in-depth coverage
quick introduction
a b c d e f g h i j k l m n o p q r s t u v w x y z
MatchError class
and ``not exhaustive'' warning
and extractors
not thrown in
for expressions
1 2
Matsumoto, Yukihiro
max method
on class
Int (via
RichInt)
1 2 3
member functions,
see methods
member variables,
see fields
members
abstract
field
initialization
order of
method
no static
type
merge sort
message passing
1 2 3
meta-programming
methods,
see also functions
1 2
abstract
as operators
as procedures
empty-paren
a b c d e f g h i j k l m n o p q r s t u v w x y z
first-order
overloading
overriding
parameterless
overriding with
vals
1 2
parameters of
private
return from
when to invoke with empty parentheses
1 2
Meyer, Bertrand
Meyers, Scott
min method
on class
Int (via
RichInt)
1 2
mixed identifiers
mixin
composition
and self types
mixin composition,
see also traits
and self types
example of
syntax for
mkString method
on class
List 1 2
on trait Iterable
mock objects
a b c d e f g h i j k l m n o p q r s t u v w x y z
modules
runtime linking
monads
monitors
Multi-Java language
multi-threaded
programming,
see concurrency
multicore
1 2
multiple return values
1 2
multiple variable definitions
multiple-line statements
mutability
and concurrency
and equals
of collections
of object state
namespaces
in C#
Scala's two instead of Java's four
naming conventions
NaN (not a number)
1 2
ne method
on class
AnyRef 1 2
nesting
of classes and objects
a b c d e f g h i j k l m n o p q r s t u v w x y z
of functions
of packages
.NET
1 2 3
NetBeans
IDE
new keyword
not needed when calling factory methods
not needed with case classes
next method
on trait
Iterator
Nice language
Nil object
1 2 3 4
Nilsson, Rickard
Node class
NodeSeq class
None object
in extractors
nonvariance
Nothing type
as result type of throw expressions
as type parameter of List
in Scala class hierarchy diagram
Null class
in Scala class hierarchy diagram
null value
a b c d e f g h i j k l m n o p q r s t u v w x y z
in equals methods
using Option instead for optional values
NullPointerException, preventing
Object class,
see also AnyRef class
in Scala class hierarchy diagram
object keyword
object-oriented
programming
object-oriented programming
1 2
Object-Oriented Software Construction (Meyer)
object-private access with private[this]
objects
annotating
companion,
see companion objects
domain
entity
equality of,
see equality
functional (immutable)
immutable
mock, in testing
mutable
safe publication of
serializing
singleton,
see singleton objects
standalone
a b c d e f g h i j k l m n o p q r s t u v w x y z
stateful (mutable)
OCaml language
1 2 3
on-demand import
operator
associativity
example: class Rational with
operator methods
identifiers
when to use
notation
1 2 3
infix
postfix
prefix
``overloading''
precedence
1 2
table of
opt method
on trait Parsers
optimization
of tail recursion
turning off with notailcalls
of value types
Option class
Ordered trait
1 2 3
outer classes,
see inner classes
a b c d e f g h i j k l m n o p q r s t u v w x y z
overloading
constructors
methods
``operator''
override modifier
1 2
on parametric fields
overriding
defs with
vals
1 2
methods
and fields
equals method
package clauses
package-private access (Java)
packages
as modules
hiding
implicitly imported
unnamed package
pair, name for Tuple2
Panel class
parallel
programming
parameterization
with
types
with
values
parameterized types
a b c d e f g h i j k l m n o p q r s t u v w x y z
and object equality
parameterless methods
overriding with
vals
1 2
parameters
by-name
1 2
by-value
class,
see class
parameters
implicit
1 2 3
repeated
1 2
vararg matching
type
versus
arguments
parametric fields
1 2
parentheses
using curly braces instead of
when to use on method calls
1 2
parser
combinators
parser
generators
Parser class
parser combinators
1 2
ParseResult class
parsers
Parsers
trait
1 2
partial functions
a b c d e f g h i j k l m n o p q r s t u v w x y z
and
actors
PartialFunction trait
1 2 3
partially applied functions
1 2
partition method
on class List
passing arguments
to
superclass a constructor
path-dependent types
and inner classes
pattern
matching
and extractors
in exception handling
in lists
in equals method
pattern guards
pattern matching
constant patterns
1 2
constructor patterns
1 2
examples of
1 2
in
equals method
in event handling
in
for expressions
1 2
in lists
in variable definitions
a b c d e f g h i j k l m n o p q r s t u v w x y z
in-depth coverage
on XML
quick introduction
sequence patterns
tuple patterns
typed patterns
variable patterns
variable-binding patterns
wildcard patterns
patterns
and idioms
divide and conquer principle
ensuring a resource is closed
patterns and idioms
conditional initialization
functional on the outside,
imperative on the inside
loan pattern
reading lines, characters, etc., with do-while
rich wrappers pattern
1 2
using Option not null to indicate optional values
performance
and multi-core processors
of Scala compared to Java
Perl language
1 2
Pizza language
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
placeholder syntax
in existentials
in function literals
1 2
PLT-Scheme language
pointers,
see references
polymorphism
and type inference
pop method
on class Stack
Popescu, Alexandru
postconditions,
see ensuring method
postfix operator notation
pre-initialized
fields
precedence, operator
1 2
table of
preconditions
Predef object
methods
assert 1 2
classOf 1 2
ensuring
println
predicates
prefix operator notation
a b c d e f g h i j k l m n o p q r s t u v w x y z
primary constructors
private
primitive types
private modifier
and inner classes
augmented with qualifiers, i.e., private[meeting]
granting access to private members of inner classes
in modules
object-private access with private[this]
on constructors
on fields
1 2
on methods
on parametric
fields
procedures
programming
style
modular
programming in the large
programming in the small
programming style
functional
imperative
pronunciation of Scala
properties
1 2 3
verifiable with static typing
a b c d e f g h i j k l m n o p q r s t u v w x y z
protected modifier
on parametric
fields
public access
Publisher trait
push
method
on class Stack
Python language
1 2 3
Queue class
r method
on class
String (via RichString)
range method
on object
List
on object List
ranges, of basic types
raw strings
in regular expressions
raw types (Java)
1 2
Raymond, Eric
1 2
reactions property
on
Reactor
on Reactor
Reactor
trait
Reader class
reading
a b c d e f g h i j k l m n o p q r s t u v w x y z
from standard input
with do-while
lines from a file
receive method
on trait
Actor 1 2
recommended style,
see style recommendations
recursion,
see recursion
in
combinator parsers
tail
optimization
using ListBuffer to prevent stack overflow
reduceLeft method
on class List
refactoring
and static typing
and vals
imperative to functional style
reducing code duplication with closures
reference
classes
definition of
equality
1 2 3
referential transparency
reflection
regex method
a b c d e f g h i j k l m n o p q r s t u v w x y z
on trait
RegexParsers
Regex class
RegexParsers trait
1 2 3
regular expressions
as parsers
1 2
relational operations (
>,
<,
>=,
<=)
on numeric types
on trait Ordered
remove method
on class List
rendererComponent method
on class Table
rep method
on trait
Parsers
repeated parameters
1 2
vararg matching
representation independence
repsep method
on trait
Parsers
require method
on object
Predef
resources, ensuring release of
1 2
result type
covariance of
a b c d e f g h i j k l m n o p q r s t u v w x y z
return keyword
return type
returning multiple values
1 2
reverse method
on class
List 1 2
rich wrappers pattern
1 2
RichInt class,
see Int class
RichString class,
see String class
rowHeaderView property
on class ScrollPane
Ruby language
1 2 3 4
Rumbaugh, James
running a Scala program,
see scala
runtime type, definition of
saveFull method
on
XML
Scala
language
compiling
scalability of
scala (Scala launcher)
to launch applications
to launch scripts
to launch the interpreter
Scala language
a b c d e f g h i j k l m n o p q r s t u v w x y z
class hierarchy diagram
compatibility
with Java
compatibility with Java
1 2
conciseness versus Java
downloading
IDEs
influences on
interpreter shell
naming of source files
pronunciation of ``Scala''
scalability of
1 2
scripts,
see scripts, Scala
specification
scalability
of configuration
of Scala language
1 2 3
of teams
scalac (Scala compiler)
ScalaCheck
1 2
Scaladoc
ScalaObject trait
ScalaTest
scanner generators
Scheme language
a b c d e f g h i j k l m n o p q r s t u v w x y z
scope
of implicit conversions
of variables
scripts, Scala
1 2
running on Unix
running on Windows
ScrollPane
class
1 2
sealed classes
sealed modifier
1 2
selectors
in match expressions
selectors, in imports
self
types
self references
self types
1 2
semi-structured data
semicolon inference
turning off
Seq trait
1 2
sequence patterns
serializable annotation
1 2
serialization
binary
to and from XML
a b c d e f g h i j k l m n o p q r s t u v w x y z
SerialVersionUID annotation
Set objects
1 2
Set traits,
see sets
sets
1 2
and generic types
class hierarchy diagram
creating and initializing immutable
creating and initializing mutable
mutability modeled in hierarchy
table of methods
setter methods
1 2 3
shadowing variables
shared
data and locks
shared-nothing message passing
shell, Scala interpreter
shift operations (
<<,
>>,
>>>)
on integral types
short circuiting, of logical operations
Short class
1 2
side effects
1 2 3
minimizing
SimpleGUIApplication
class
1 2
Simula language
singleton
objects
a b c d e f g h i j k l m n o p q r s t u v w x y z
as modules
singleton objects
as seen from Java
in testing
initialization semantics
nesting of
shown with rounded corners in hierarchy diagrams
singleton types
size method
on Set traits
Smalltalk language
1 2
SML language
snoc
Some class
in extractors
sort
insertion
1 2
merge
sort method
on class
List
on class List
SortedMap trait
SortedSet trait
source code, downloading,
see example code
a b c d e f g h i j k l m n o p q r s t u v w x y z
source files, naming of
Source object
span method
on class List
specifiers, access,
see access modifiers
specs
1 2
split method
on class String
splitAt method
on class List
spreadsheets
Spring
Framework
Spring Framework
Stack class
stack, the
and tail-recursive functions
1 2
and the react method on actors
and thrown exceptions
and variables captured by closures
stackable modifications
standalone objects
standard error stream
statements
multiple-line
a b c d e f g h i j k l m n o p q r s t u v w x y z
static members
static typing
Steele, Guy
1 2
String class
methods
r (via RichString)
stripMargin (via RichString)
StringBuilder class
stringLiteral method
in trait JavaTokenParsers
strings
formatting
iterating through the characters of
literals
long
raw
1 2
treating as Seq[Char] (via RichString)
structural subtyping,
see http:// booksites.artima.com/ programming_in_scala
Structure
and Interpretation of Computer Programs (Abelson, et. al.)
style recommendations
prefer alphabetic names unless symbolic names have
established meaning
prefer classes to tuples when data combination has meaning
prefer vals, immutable objects, and
methods without side effects
use
implicit conversions with restraint
a b c d e f g h i j k l m n o p q r s t u v w x y z
subclasses
and equals method
defining
subtyping
and type parameters
versus subclassing
subtyping polymorphism
Success class
super references
special treatment in traits
superclasses
invoking constructor on
supertype
Sussman, Gerald J.
1 2
Swing
1 2
methods
EmptyBorder
switch statement (Java)
symbol literals
symbolic versus alphabetic
names
SynchronizedMap trait
SynchronizedSet trait
syntactical analysis
Table class
1 2
a b c d e f g h i j k l m n o p q r s t u v w x y z
TableUpdated class
$tag method
on trait ScalaObject
tags, XML
tail
recursion
tail method
on class
List 1 2 3
tail recursion
1 2
optimization
turning off with notailcalls
take method
on class List
takeWhile method
on class List
target typing
template, definition of
term, in function literals
Test annotation
in JUnit 4
in TestNG
test suites
TestCase class
testing
1 2
integration
a b c d e f g h i j k l m n o p q r s t u v w x y z
unit
with mock objects
with singletons
TestNG
1 2
Text class
text method
on class Node
text processing in
XML
text processing in XML
TextField class
Thinking in Java (Eckel)
this
aliasing
and self
types
Thread class
thread safety
1 2 3 4
threads, and actors
throw expressions
throws annotation
to method
on class
Int (via
RichInt)
1 2 3
toArray method
on class List
toChar method
a b c d e f g h i j k l m n o p q r s t u v w x y z
on class Int
toInt method
on class String (via RichString)
toList method
on
class ListBuffer
on class
Array 1 2
on class ListBuffer
top method
on class Stack
top method
on class SimpleGUIApplication
Torreborre, Eric
toString method
1 2
generated for case classes
on class Any
overriding
traits,
see also mixin composition
1 2
and
abstract parameters
and Java interfaces
annotating
generic
1 2
initializing
linearization of
mixing in
a b c d e f g h i j k l m n o p q r s t u v w x y z
transient annotation
TreeMap class
TreeSet class
true value
try expressions
tuple patterns
tuples
creating and using
one-based element access
result of -> operation
when to use a class
instead
type
constructors
type
parameters
lower bounds
type aliases
1 2 3
type annotations
1 2 3
for debugging
type casts,
see casting
type erasure
type inference
1 2
Hindley-Milner style
the algorithm
type keyword
in singleton types, such as db.type
a b c d e f g h i j k l m n o p q r s t u v w x y z
in type alias definitions
1 2
type members
type parameterization,
see parameterized types
type parameters
in parser results
upper bounds
type tests
with isInstanceOf
with type patterns (preferred style)
type-driven
design
typed patterns
types
abstract
bottom
erasure
existential
1 2
generic
ground
in for expressions
integral
numeric
path-dependent
primitive
result
a b c d e f g h i j k l m n o p q r s t u v w x y z
return
runtime
self
1 2 3
singleton
static
target
typing
dynamic
1 2 3 4
static
target
Ullman, Jeffrey
unapply method
in
extractors
unapplySeq method
in extractors
unary operations
1 2
unchecked annotation
1 2 3
Unicode
Unified Modeling Language Reference Manual, The (Rumbaugh, et. al.)
uniform access
principle
Unit class
as return type of a method
unit testing
1 2 3
unit value
a b c d e f g h i j k l m n o p q r s t u v w x y z
unnamed package
until method
on class
Int (via
RichInt)
1 2 3
unzip method
on object List
update method
on class Array
upper bounds
user
interfaces
reactive programming
user interfaces
1 2
reactive programming
vals,
see also variables
abstract
annotating
as fields
conditional initialization of
defining
lazy
preferring over vars
referencing mutable objects
``val'' on class parameters
Value class
value classes
a b c d e f g h i j k l m n o p q r s t u v w x y z
value parameterization
ValueChanged class
values method
on Map traits
van Rossum, Guido
vararg matching
variable patterns
variable-binding patterns
variable-length arguments, or ``varargs'',
see repeated parameters
variables
bound
1 2
captured by closures
defining
using patterns
1 2
fields
final (Java),
see vals
free
instance
local
multiple definitions of
reassignable,
see also vars
scope
shadowing
variance
a b c d e f g h i j k l m n o p q r s t u v w x y z
annotations
compiler checking of
1 2
declaration-site
use-site
vars,
see also variables
abstract
and mutable objects
annotating
as fields
defining
on class parameters
programming without
verifiable properties
view bounds
1 2
viewportView property
on class ScrollPane
volatile
annotation
1 2
Wall, Larry
warnings,
see compiler warnings
while loops
1 2
as imperative style
wildcard patterns
wildcard types (Java)
Wirth, Niklaus
a b c d e f g h i j k l m n o p q r s t u v w x y z
with keyword
XML
attributes
1 2
character encoding
configuration
files
configuration files
deserialization
elements
literals
pattern
matching
serialization
tags
text
using an at sign (@) to extract attributes
using curly braces ({})
in pattern matching
XPath
XML object
methods
loadFile
XML object
methods
saveFull
XPath
Yacc
a b c d e f g h i j k l m n o p q r s t u v w x y z
yield keyword
in
for expressions
in for expressions
zip method
on class List
zipWithIndex method
on class List