Skip to content

Instantly share code, notes, and snippets.

Andy Fingerhut jafingerhut

Block or report user

Report or block jafingerhut

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jafingerhut
jafingerhut / cljs-repl-with-core.matrix-deps.edn
Last active Oct 2, 2019
Creating a cljs REPL from terminal using deps.edn and clj command
View cljs-repl-with-core.matrix-deps.edn
;; Save this file as deps.edn in some directory that doesn't already
;; have such a file.
;; You must have the following installed for the command below to have
;; a chance of working:
;; + A JDK, e.g. from AdoptOpenJDK web site: https://adoptopenjdk.net
;; + Clojure CLI tools. Install instructions here:
;; https://clojure.org/guides/getting_started
;; + Node.js JavaScript runtime environment. Some prepackaged ways to
@jafingerhut
jafingerhut / cljs-repl-with-core.matrix-deps.edn
Created Oct 2, 2019
Creating a cljs REPL from terminal using deps.edn and clj command
View cljs-repl-with-core.matrix-deps.edn
;; Save this file as deps.edn in some directory that doesn't already
;; have such a file.
;; You must have the following installed for the command below to have
;; a chance of working:
;; + A JDK, e.g. from AdoptOpenJDK web site: https://adoptopenjdk.net
;; + Clojure CLI tools. Install instructions here:
;; https://clojure.org/guides/getting_started
;; + Node.js JavaScript runtime environment. Some prepackaged ways to
@jafingerhut
jafingerhut / cljs-with-redefs-on-core-fn.cljs
Created Aug 9, 2019
Does with-redefs work for functions in cljs.core, e.g. like vector in this example?
View cljs-with-redefs-on-core-fn.cljs
;; Command to start ClojureScript REPL:
;; clj -Sdeps "{:deps {org.clojure/clojurescript {:mvn/version \"1.10.520\"}}}" -m cljs.main --repl-env node
(defn wrapme [wrapped-fn a another-fn]
(fn [& args]
(println "called wrapped fn")
(let [ret (apply wrapped-fn args)]
(apply another-fn a ret args)
ret)))
@jafingerhut
jafingerhut / project.clj
Created May 1, 2018
Locally modified version of Sophia-Gold/anaphora project.clj file I tried
View project.clj
(defproject anaphora "0.1.0-SNAPSHOT"
:url "https://medium.com/@sophiagoldnyc/anaphora"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.10.0-master-SNAPSHOT"]
[org.clojure/data.avl "0.0.17"]
[org.clojure/data.int-map "0.2.4"]
[org.clojure/math.combinatorics "0.1.4"]
[org.clojure/tools.analyzer "0.6.9"]
[org.clojure/tools.analyzer.jvm "0.7.2"]
View tools-analyzer-jvm-clj-180-alpha3-oddity.clj
;; Latest tools.analyzer.jvm as of Jul 29 2015 commit.
;; Clojure 1.8.0-alpha2 behavior (and I think for many previous
;; Clojure versions)
user=> (require '[clojure.tools.analyzer.jvm :as taj])
nil
user=> (def x (taj/analyze '(defn foo [x] "Not a doc string" (* x x))))
#'user/x
@jafingerhut
jafingerhut / project.clj
Last active Aug 29, 2015
Tiny Leiningen project.clj file with dev dependency on criterium
View project.clj
(defproject useclj16 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.6.0"]]
:profiles {:dev {:dependencies [[criterium "0.4.3"]]}})
View merge-sorted-seqs.clj
;; Example:
;; (merge-sorted-seqs < (range 10 1000 3) (range 12 1000 5))
(defn merge-sorted-seqs [cmpf seq1 seq2]
(let [seq1wins (and (seq seq1)
(or (nil? (seq seq2))
(cmpf (first seq1) (first seq2))))]
(if seq1wins
(lazy-seq (cons (first seq1)
(merge-sorted-seqs cmpf (next seq1) seq2)))
@jafingerhut
jafingerhut / macrometa.clj
Last active Aug 29, 2015
Clojure metadata lost during macro invocations
View macrometa.clj
;; Clojure JIRA ticket CLJ-865: http://dev.clojure.org/jira/browse/CLJ-865
;; was created with the intent of changing some of the behavior below, but it is
;; not clear as of late 2014 whether the behavior is considered a bug that should
;; be changed.
;; Nicola Mometto pointed out that there may be similar issues with metadata
;; being eliminated for primInvoke's and functions defined with definline.
;; Perhaps http://dev.clojure.org/jira/browse/CLJ-1533 is related.
user=> *clojure-version*
@jafingerhut
jafingerhut / reify-ns-qualified-args.clj
Created Nov 4, 2014
Reify with namespace-qualified args
View reify-ns-qualified-args.clj
user=> (def b 7)
#'user/b
user=> (def fplus2 (reify java.lang.Object (hashCode [user/b] (+ user/b 2))))
#'user/fplus2
user=> (.hashCode fplus2)
9
View tag-vars.clj
;; TBD: What is going on here?
;; Why does (Math/abs (f2 -3)) cause a
;; reflection warning, but neither of the other variants does?
user=> (clojure-version)
"1.6.0"
user=> (set! *warn-on-reflection* true)
true
user=> (defn ^{:tag 'long} f1 [x] (inc x))
You can’t perform that action at this time.