This repository contains the ever evolving content of an introduction to functional programming in Clojure (https://clojure.org/), the programming language I fell in love with many years ago (thanks Chas ;-)).
To look at the slides or the tutorial, simply download the repository (or clone it) and open one of the HTML files in slides/
or tutorials
.
There is also a demo how to step-by-step develop a web application in Clojure from the ground up. Look for the Git tags demo-start
and demo-end
. Each commit in-between implements some feature towards a simple web app.
The slides use the Reveal.js presentation framework (http://lab.hakim.se/reveal-js). The content is written in Asciidoc (http://asciidoc.org/) and transformed into HTML using Assciidoctor (http://asciidoctor.org/). Follow the instructions on https://github.com/asciidoctor/asciidoctor-reveal.js to install the tool chain.
Render the HTML file from the *.adoc
files in resources/slides
(invoked from the project folder) using
bundle exec asciidoctor-revealjs slides/**/*.adoc
The HTML pages of the tutorial are also written in Asciidoc using the Asciidoctor toolchain. The interactive code evaluation is done by the KLIPSE framework (https://github.com/viebel/klipse).
Render the HTML file from the *.adoc
files in tutorials/
(invoked from the project folder) using
asciidoctor tutorials/**/*.adoc
The IntelliJ IDEA (https://www.jetbrains.com/idea/) can trigger the rendering on file change. Make sure you have the File Watchers plugin installed (available directly from JetBrains).
The following screenshot shows the settings I use. Each command (one for slides and one for the tutorial) is invoked only within its scope.
-
Install (Node)[https://nodejs.org/en/download/]
-
Install Mermaid
yarn global add [email protected]
-
Install asciidoctor-diagram:
gem install asciidoctor-diagram