The Artima Developer Community

Programming in Scala, First Edition
Index
by Martin Odersky, Lex Spoon, and Bill Venners
December 10, 2008

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


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use