←
Creative Scala: Form and Function
→
Creative Scala: Form and Function
Foreword to the First Edition
Foreword to the Second Edition
Getting Started
Background
Installing Terminal Software and a Text Editor
GitHub
IntelliJ
Setup
Expressions, Values, and Types
Starting to Program
Expressions and Values
Types
Exercises
Summary
Expanding Expressions
Literal Expressions
Values are Objects
Types
Exercises
Images
Expressive Expressions
Layout
Color
Creating Colors
The Substitution Model of Evaluation
Substitution
Order of Evaluation
Local Reasoning
Methods without Madness
Methods
Method Syntax
Method Semantics
Writing Methods
Conclusions
Structural Recursion over the Natural Numbers
A Line of Boxes
The Natural Numbers
Match Expressions
Reasoning about Recursion
Conclusions
Fractals
The Chessboard
Nested Methods
Auxiliary Parameters
Exercises
turtles
Turtle Algebra and Algebraic Data Types
Controlling the Turtle
Exercises
Branching Structures
Solutions to Exercises {#solutions}
generative
Composition of Generative Art
Generative Art
Combining Random Values
Exercises
For Comprehensions
Exploring Random
Randomness without Effect
Combining Random Values
adt
Algebraic Data Types To Call Our Own
Build Your Own Turtle
Algebraic Data Types
declarations
Declarations
Extended Exercise: Color Palettes
Method Declarations
Take Home Points
Value Declarations
sequences
Shapes, Sequences, and Stars
Working with Lists
Paths
Transforming Sequences
My God, It's Full of Stars!
data
Creating and Working With Data
Case Classes
Data
summary
Summary
fp
(Functional) Programming
Functions as Values
Take Home Points
Recursive Algorithms
programs
Writing Larger Programs
Working Within the Console
Coding Outside the Console
Packages and Imports
Abstraction
Names
quickreference
Syntax Quick Reference {#syntax-quick-reference}
hof
Horticulture and Higher-order Functions
Exercises
Parametric Curves
Conclusions
Functions
Flowers and Other Curves
Higher Order Methods and Functions
Introduction
animation
Animation and Fireworks
Reactors
Easing Functions
links.md
collections
Collections {#collections}
Transforming Sequences
Drawing Paths
Take Home Points
Creating Sequences
Collections {#collections}→