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