I hereby claim:
- I am jeroenvandijk on github.
- I am jeroenvandijk (https://keybase.io/jeroenvandijk) on keybase.
- I have a public key whose fingerprint is EABD B08B 7E40 0750 54C2 9F31 1BDC C90E A3CA BA2D
To claim this, I am signing this object:
;; Like https://github.com/ltratt/multitime but with the power of Clojure: multi-processor, shuffling, advanced statistics | |
;; export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {org.clojure/data.generators {:mvn/version "1.0.0"}, org.clojure/math.combinatorics {:mvn/version "0.1.6"}}}' -Spath) | |
(do | |
(require '[clojure.math.combinatorics :as combo] | |
'[clojure.data.generators :as gen]) | |
(let [binaries ["../sci/tmp/sci-25ace7c" | |
"../sci/tmp/sci-3c01531" | |
"../sci/tmp/sci-6c8852d"] |
bb | |
user=> (babashka.pods/load-pod "./simple-pod.bb") | |
nil | |
user=> (require '[pod.babashka.spire :as spire]) | |
nil | |
user=> (spire/magic! ) | |
java.lang.NullPointerException | |
#error { | |
:cause "Invalid netstring. Unexpected end of input." | |
:via |
I hereby claim:
To claim this, I am signing this object:
const { evalString } = require("@borkdude/sci"); | |
let printlnArgs = null; | |
function println(...args) { | |
printlnArgs = args.map(arg => arg.toString()).join(" "); | |
} | |
exports.evalClojureExpr = (req, res) => { | |
const { text } = req.body; | |
try { | |
const result = evalString(text, {namespaces: {"clojure.core": {println: println}}}); | |
let value = []; |
(defn heredoc [] | |
(let [delim (.readLine *in*)] | |
(->> (repeatedly #(.readLine *in*)) | |
(take-while #(not= delim %)) | |
(interpose \newline) | |
(apply str)))) | |
; The following lines are read (by the reader) as: | |
; "Look )(\"\\T\na here doc!\n" | |
#=(heredoc)""" |
(ns datomic.schema-dump | |
(:require | |
[datomic.api :as d] | |
[clojure.pprint])) | |
(defmethod clojure.pprint/simple-dispatch datomic.db.DbId [v] (pr v)) | |
(defmethod clojure.pprint/simple-dispatch datomic.function.Function [v] (pr v)) | |
(defn database-url [name] | |
(str "datomic:mem://" name)) |
(defcmd git [& [dispatch :as args]] | |
(if (= dispatch "browse") | |
(let [{:keys [code stderr] | |
remote-url :stdout} (sh-value "git" "remote" "get-url" "origin")] | |
(if (zero? code) | |
(do (println "Opening" remote-url) | |
(sh "open" (clojure.string/trim remote-url))) | |
(println stderr))) | |
(eval `(sh "git" ~@args)))) |
(defcmd git [& [dispatch :as args]] | |
(if (= dispatch "browse") | |
(let [{:keys [code stderr] | |
remote-url :stdout} (sh-value "git" "remote" "get-url" "origin")] | |
(if (zero? code) | |
(do (println "Opening" remote-url) | |
(sh "open" (clojure.string/trim remote-url))) | |
(println stderr))) | |
(eval `(sh "git" ~@args)))) |
I am observing this weird behaviour of watching a clojure ref. It seems to behave wrong/delayed when not wrapped in a let
block:
(let []
(def ^{:flag 1} v 1))
(def ^{:flag 2} v 2)
(add-watch #'v ::listener (fn [_key _ref old-value new-value]
(println "old " old-value ", new" new-value "new-meta " _ref (select-keys (meta _ref) [:flag]))))
(ns clojure_js | |
(:gen-class) | |
(:import [javax.script | |
ScriptEngineManager | |
ScriptException | |
SimpleBindings])) | |
;; GraalVM doesn't like reflections | |
(set! *warn-on-reflection* true) |