- 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/
This is a selection of the most articulated critique found in the open comments section Q25 at the bottom of the survey. Recurring themes are:
- Elitism, ivory tower, "not smart enough to get it" attitude of frequent speaker or early adopters.
- Poor basic documentation, error messages, beginner friendly resources.
- Fear of contribution (with reasons like a. community-built tools open to attack and replacement by core team b. hostile contribution environment c. closed development process)
- The community has to grow to create more opportunities. Many organizations don't want to even consider using it because they fear not being able to find Clojure developers. Unless you have a mentor or are extremely motivated, Clojure scares away most imperative developers. My suggestions is to team up with a university and get a Clojure course on Coursera or a similar platform. This is the only way I got in
In your command-line run the following commands:
brew doctor
brew update
from http://www.linuxjournal.com/article/10708
DE: What did you do before you started the Clojure project?
RH: I'm a consultant, so I work on various things. I think the big thing I've done recently is I worked on the national exit poll.
DE: What other languages did you use before inventing your own?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var canvas = document.createElement('canvas'); | |
var gl; | |
var debugInfo; | |
var vendor; | |
var renderer; | |
try { | |
gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); | |
} catch (e) { | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(def i (js/Image.)) | |
(def p (js/Promise. (fn [resolve] | |
(set! (.-onload i) #(resolve i)) | |
(set! (.-src i) "url.jpg")))) | |
(.then p (.-log js/console)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Based on https://github.com/GabrielDelepine/smooth-scroll/blob/main/smooth-scroll.js | |
(ns example.scroll) | |
(def speed 500) | |
(def moving-frequency 15) | |
(defn cur-doc-top [] | |
(+ (.. js/document -body -scrollTop) (.. js/document -documentElement -scrollTop))) | |
(defn element-top [elem top] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn invoke-private-method [obj fn-name-string & args] | |
(let [m (first (filter (fn [x] (.. x getName (equals fn-name-string))) | |
(.. obj getClass getDeclaredMethods)))] | |
(. m (setAccessible true)) | |
(. m (invoke obj args)))) | |
(defn private-field [obj fn-name-string] | |
(let [m (.. obj getClass (getDeclaredField fn-name-string))] | |
(. m (setAccessible true)) | |
(. m (get obj)))) |
NewerOlder