An Animated Introduction to Clojure


Mark Mahoney

This is a brief introduction to the Clojure programming language. Clojure is an awesome functional programming language. It is sometimes called a LISP or LISt Processer. I will introduce the basics of the functional programming paradigm in this book.

To install and run Clojure programs please look at the documentation here: https://clojure.org/. Alternatively, if you'd like to skip the install process you can write and run Clojure programs from the very cool repl.it online coding platform: https://replit.com/

1.1 Hello World!!!
1.2 Readers/evaluators and simple arithmetic
1.3 Dog age converter
1.4 Java interoperability
1.5 Clojure Data Structures
1.6 More with Data Structures
2.1 Functions in Clojure
2.2 Fizz-buzz
2.3 Maps as objects
2.4 Reading from a file
2.5 Writing to a file
3.1 Closures
3.2 Interest in an account
4.1 Tail recursion
4.2 Recursion and fizz-buzz
4.3 Recursion and square roots
4.4 Converting a String to an Integer in the Bases 2-16
4.5 Mortgage scheduler 
5.1 Lazy sequences
5.2 Lazy prime generator
5.3 Poker probabilities
6.1 Macros
6.2 Set macros
7.1 Threads
7.2 Threaded poker
7.3 refs and threads
7.4 Atoms
7.5 Poker with atoms
7.6 Thread logging with agents
7.7 Simpler concurrency