- 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/
#!/bin/bash | |
# Check if an argument was provided | |
if [ $# -eq 0 ]; then | |
echo "No file path provided." | |
exit 1 | |
fi | |
# Use the provided argument (file path) | |
file="$1" |
use git diff to generate file list
git diff --name-only master
add ext filter
Using JavaScript libraries from ClojureScript involves two distinct concerns:
- Packaging the code and delivering it to the browser
- Making ClojureScript code that accesses JavaScript libraries safe for advanced optimization
Right now, the only single tool that solves these probems reliably, optimally, and with minimal configuration is shadow-cljs
, and so that is what I favor. In paricular, shadow-cljs
lets you install npm modules using npm
or yarn
and uses the resulting package.json
to bundle external dependencies. Below I describe why, what alternatives there are, and what solutions I disfavor at this time.
RUN apt update | |
RUN apt upgrade -y | |
RUN apt install -y apt-utils | |
RUN a2enmod rewrite | |
RUN apt install -y libmcrypt-dev | |
RUN docker-php-ext-install mcrypt | |
RUN apt install -y libicu-dev | |
RUN docker-php-ext-install -j$(nproc) intl | |
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev | |
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ |
Exhaustive list of SPDX (Software Package Data Exchange) licenses: https://spdx.org/licenses/
This is a guide for aligning images.
See the full Advanced Markdown doc for more tips and tricks
import org.lwjgl._ | |
import org.lwjgl.glfw._ | |
import org.lwjgl.opengl._ | |
import org.lwjgl.glfw.Callbacks._ | |
import org.lwjgl.glfw.GLFW._ | |
import org.lwjgl.opengl.GL11._ | |
import org.lwjgl.system.MemoryUtil._ | |
object Main { |
{ | |
"require": { | |
"mfacenet/hello-world": "v1.*" | |
} | |
} |
This is all personal opinion and a matter of taste. I'm putting it here because people have asked - I'm glad Cider exists and that a lot of people are obviously using it to great effect. This is not an attack on Cider or a an attempt to negate the experience of those who like it, just my own experience.
Also some of the critiques are more properly aimed at nRepl than Cider - I don't use nRepl either, in Emacs. For some reason I have fewer issues with it in Cursive (though I still do have some).
- With Cider, there's too much "going on" between Emacs and Clojure. When something glitches, hangs, doesn't return a value, throws an excption, etc (as it does, multiple times a day), I don't know whether the problem is in Emacs, in the Cider client, the nRepl server, one of any of the default middlewares or in my actual program. I run Emacs in inferior lisp using
lein trampoline -m clojure.main
- if something goes wrong, it's either in Emacs (which is usually obvious) or my program. Mi