←
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
Images
Exercises
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
Points, Paths, and Polygons
Polar Coordinates
Paths
Creative Extensions
Conclusions
declarations
Method Declarations
Declarations
Value Declarations
Take Home Points
Extended Exercise: Color Palettes
hof
Parametric Curves
Conclusions
Horticulture and Higher-order Functions
Higher Order Methods and Functions
Exercises
Flowers and Other Curves
Functions
sequences
Paths
My God, It's Full of Stars!
Shapes, Sequences, and Stars
Working with Lists
Transforming Sequences
links.md
Solutions to Exercises {#solutions}
collections
Drawing Paths
Collections {#collections}
Creating Sequences
Take Home Points
Transforming Sequences
turtles
Branching Structures
Turtle Algebra and Algebraic Data Types
Exercises
Controlling the Turtle
programs
Coding Outside the Console
Names
Writing Larger Programs
Packages and Imports
Abstraction
Working Within the Console
animation
Animation and Fireworks
Reactors
Easing Functions
adt
Algebraic Data Types To Call Our Own
Algebraic Data Types
Build Your Own Turtle
generative
Generative Art
Composition of Generative Art
Combining Random Values
Exercises
For Comprehensions
Combining Random Values
Randomness without Effect
Exploring Random
data
Creating and Working With Data
Case Classes
Data
Introduction
fp
(Functional) Programming
Take Home Points
Recursive Algorithms
Functions as Values
summary
Summary
quickreference
Syntax Quick Reference {#syntax-quick-reference}
Solutions to Exercises {#solutions}→