Functional programming in Clojure
Clojure MOOC has ended
This meens that you can't get study credits for the Clojure course given by the CS department of University of Helsinki.
Basic tools
Get equipped in your fight against the dragons.
- Installing the developement environment
- Java
- Leiningen
- Editor
- Git
- How to submit answers to exercises
Training day
Get your survival skills up to shape.
- Structure of the exercise project
- Using the REPL
- Prefix syntax
- Defining functions
I am a horse in the land of booleans
Get your horse!
if
and truthiness- Everything is an expression and thus has a value
Structured data
Learn the structural weaknesses of dragons.
- Local names
- Data structures
- Vectors
- Maps
- Sets
- Abstract sequences
- Mapping
- Filtering
Style
Polish your boots and armour.
- Indentation
- Whitespace
- Idioms
P-P-P-Pokerface
Project: poker hand evaluator
Predicates
- Functions as values
- Predicate functions
- Higher-order functions
some
every?
Recursion
Down the rabbit hole.
- Recursion over sequences
- Recursion over numbers
- Nonlinear recursion
- Tree recursion
- Passing state
Looping is recursion
Calling tails.
- Iteration with tail recursion
loop
recur
One Function to rule them all
One Function to rule them all, One Function to find them,
One Function to bring them all and in the darkness bind them
In the Land of Code where the Off-By-Ones lie.
- Accumulating recursion with
reduce
- Variable arguments
blorg blorg blorg
A blog engine written in Clojure, studied.
Sudoku
Project: sudoku solver