- High level overview https://yogthos.github.io/ClojureDistilled.html
- An Animated Introduction to Clojure https://markm208.github.io/cljbook/
- Interactive tutorial in a browser https://tryclojure.org/
- Interactive exercises http://clojurescriptkoans.com/
- Clerk notebooks with introductory examples https://github.clerk.garden/anthonygalea/notes-on-clojure
- More interactive exercises https://4clojure.oxal.org/
- Lambda Island tutorials https://lambdaisland.com/
- Functional Programming with Clojure resources https://practicalli.github.io/
These notes are pretty much the same steps as the two extensions list, it's just that I had to collate them together because neither seems to list it fully in the proper order.
-
Install Synthwave ’84/Synthwave + Fluoromachine theme on VS Code (I used the Fluoromachine one)
-
Install Custom CSS and JS Loader
-
Command + Shift + P to open command palette > "Preferences: Open settings (JSON)"
You can load ClojureScript :advanced
code directly into an ESP32 WROVER running Espruino for execution upon boot, by creating a binary and flashing it to the JavaScript "boot ROM" area. This has the same effect as when loading code via the Espruino Web IDE, in the "Direct to Flash (execute code at boot)" mode, but flashing is much quicker and more reliable.
Note: To do this, you'll need an ESP32 WROVER with SPI PSRAM, as opposed to just a WROOM, as the ClojureScript in this example uses more RAM than is available in the WROOM.
Here is a small program that uses enough to pull in data structures, etc, leading to nearly 100 KiB:
#!/bin/sh | |
#_( | |
#_DEPS is same format as deps.edn. Multiline is okay. | |
DEPS=' | |
{:deps {clj-time {:mvn/version "0.14.2"}}} | |
' | |
#_You can put other options here | |
OPTS=' |
(ns advent-2018.day-02 | |
(:require | |
#?(:cljs [planck.core :refer [line-seq read-string]]) | |
[#?(:clj clojure.java.io :cljs planck.io) :as io] | |
[advent-2018.day-01 :as day-01]) | |
(:import (java.util.concurrent Executors ExecutorService))) | |
(def input (->> "advent_2018/day_02/input" io/resource io/reader line-seq)) | |
(defn count-with-exact [box-ids n] |
(ns sat.core | |
(:require [rolling-stones.core :as sat :refer [!]] | |
[clojure.string :as str])) | |
(def rows 9) | |
(def cols 9) | |
(def values 9) | |
(defn possible-square-values |
Moved to a real repo, here: https://github.com/bmaddy/beautiful-interpreter
A beginner-friendly REPL that combines
{:paths ["."] | |
:deps {clansi/clansi {:mvn/version "1.0.0"}}} |
(defn raf-loop [func] | |
(let [stop (atom false) | |
id (atom nil)] | |
(reset! id (.requestAnimationFrame js/window | |
(fn helper [& args] | |
(when-not @stop | |
(reset! id (.requestAnimationFrame js/window helper)) | |
(try | |
(apply func args) | |
(catch js/Error ex |