Skip to content

Instantly share code, notes, and snippets.

View fdserr's full-sized avatar

fdserr fdserr

View GitHub Profile
@mfikes
mfikes / README.md
Last active May 24, 2018 12:20
add-lib ClojureScript
clj -Sdeps '{:deps {github-mfikes/a69c72e65330e92625bfa81d5501dad4 {:git/url "https://gist.github.com/mfikes/a69c72e65330e92625bfa81d5501dad4" :sha "700c681f61eae580be3f52181e15c221fa23b77c"}}}' -m cljs.main -re node -r

This sets you up to use Alex Miller's new add-lib capability, hacked into a revision of ClojureScript.

Once the REPL is running, call add-lib to dynamically require a Git Dep library (or a :mvn/version, or a :local/root dep):

cljs.user=> (require '[cljs.repl :refer [add-lib]])
@loganlinn
loganlinn / a_nucleus_example.cljs
Last active September 21, 2015 06:28
nucleus - a tiny flux-like architecture in clojurescript
(ns a-nucleus-example
(:require-macros
[cljs.core.async.macros :refer [go go-loop]]
[nucleus.action :refer [defaction]])
(:require
[nucleus.core :as nucleus :refer [dispatch! perform!]]
[nucleus.model :as model]
[om.core :as om]
[om-tools.core :refer-macros [defcomponent]]
[om-tools.dom :as dom :include-macros true]
@michaelsbradleyjr
michaelsbradleyjr / cljs-debug-macros.clj
Last active November 5, 2021 21:36
Macros and functions which facilitate the development and debugging of other macros and their supporting functions within a ClojureScript project.
(ns my-cljs.macros.debug
(:require [cljs.analyzer :as cljs]
clojure.walk))
(declare ap
cljs-macroexpand*
cljs-macroexpand-1*
cljs-macroexpand-all*
cljs-macroexpand
@cgrand
cgrand / repl.clj
Last active December 21, 2015 16:59
lazy incremental hashcodes for Clojure PersistentVector and PersistentMap
user=> (def v (vec (range 1e7)))
#'user/v
user=> (time (hash v))
"Elapsed time: 314.268 msecs"
604896065
user=> (time (hash (assoc v 0 :a (quot (count v) 2) :b (dec (count v)) :c)))
"Elapsed time: 0.097 msecs"
1523739128
user=> (def m (into {} (map (juxt str identity) (range 1e6))))