FPIC Archive 0: 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 truthinessEverything 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