- 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/
(defn size-table [{:keys [text urls tags mentions]}] | |
{:text {:content text | |
:size (count (.getBytes text StandardCharsets/UTF_8))} | |
:urls (map (fn [url] {:content url | |
:size (count (.getBytes url StandardCharsets/UTF_8))}) urls) | |
:tags (map (fn [tag] {:content tag | |
:size (count (.getBytes tag StandardCharsets/UTF_8))}) tags) | |
:mentions (map (fn [mention] {:content mention | |
:size (count (.getBytes mention StandardCharsets/UTF_8))}) mentions)}) |
(defconst my-chinese-pinyin-order-hash | |
#s(hash-table size 30 test equal data ( | |
"一" 375 | |
"乙" 381 | |
"二" 81 | |
"十" 293 | |
"丁" 72 | |
"厂" 35 | |
"七" 264 | |
"卜" 20 |
Disable:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
Enable:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
(source gnu) | |
(source melpa) | |
(depends-on "evil") | |
;; company-mode | |
(depends-on "company") | |
;; region | |
(depends-on "wrap-region") |
- Facts = Axioms
- Rules = Relations = Predicates
There are 2 types of knowledge in Prolog: Axiomatic Knowledge and Consequent Inferred Knowledge.
Axiomatic knowledge is the knowledge that you write as facts (and as rule predicates) in Prolog. Prolog cannot retract any of these axioms after being written (you can't do this at compile time nor at run time). This is called non-monotonic logic.
This describes how I setup Atom for an ideal Clojure development workflow. This fixes indentation on newlines, handles parentheses, etc. The keybinding settings for enter (in keymap.cson) are important to get proper newlines with indentation at the right level. There are other helpers in init.coffee and keymap.cson that are useful for cutting, copying, pasting, deleting, and indenting Lisp expressions.
The Atom documentation is excellent. It's highly worth reading the flight manual.
A lot of people mentioned other immutable JS libraries after reading my post. I thought it would be good to make a list of available ones.
There are two types of immutable libraries: simple helpers for copying JavaScript objects, and actual persistent data structure implementations. My post generally analyzed the tradeoffs between both kinds of libraries and everything applies to the below libraries in either category.
Libraries are sorted by github popularity.
Start a g2.2xlarge or better (GPU instance) with https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-ffba7b94 | |
Login, username is ubuntu | |
Update a bunch of stuff and make sure cudnn R2 is used: | |
luarocks install image | |
luarocks install loadcaffe | |
luarocks install torch | |
export LD_LIBRARY_PATH=/home/ubuntu/torch-distro/install/lib:/home/ubuntu/torch-distro/install/lib:/home/ubuntu/cudnn-6.5-linux-x64-v2-rc2 |
#!/usr/bin/env bash
# Assuming OS X Yosemite 10.10.4
# Install XCode and command line tools
# See https://itunes.apple.com/us/app/xcode/id497799835?mt=12#
# See https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html
xcode-select --install