@smith.adriane has joined the channel
is hoplon’s javelin supported in clj on the jvm?
there is a clj version but it’s kinda experimental
that’s perfect. I’m currently experimenting! is there specific branch I should work with?
https://github.com/hoplon/javelin/blob/master/src/javelin/core_clj.clj
i noticed that. I was trying to work through the readme with > (ns membrane-javelin.core > (:require [javelin.core-clj :refer [cell cell= defc defc=]]) > (:gen-class)) > > > (defc a 42) ;; cell containing the number 42 > (defc b ’(+ 1 2)) ;; cell containing the list (+ 1 2) > (defc c (+ 1 2)) ;; cell containing the number 3 > (defc d {:x @a}) ;; cell containing the map {:x 42} > > (defc= e {:x a}) ;; cell with formula {:x a}, updated when a changes > (defc= f (+ a 1)) ;; cell with formula (+ a 1), updated when a changes > (defc= g (+ a ~(inc @a))) ;; cell with formula (+ a 43), updated when a changes > (defc= h [e f g]) ;; cell with formula [e f g], updated when e, f, or g change
I’m getting class clojure.lang.Atom cannot be cast to class java.lang.Number at (defc= f (+ a 1))
presumably, defc= isn’t noticing that a is a previously defined cell? not sure if the macro is supposed to take care of that for you
i dont think any of the macros work in clj
what’s the ideal behavior for cell= to determine which symbols should be treated as referring to cells? seems like it’s just ignoring locals, clojure core symbols, and special symbols?
there’s a number of ways that could produce unexpected results
I was thinking of doing something that tries to resolve the symbol in the current namespace to check if it’s a cell and if it’s a local variable from a let, then having it do the check at runtime
@smith.adriane https://github.com/hoplon/javelin/pull/40 I've got this PR (not mine) working on the JVM
and there's a pretty good description there
awesome! i’ll check it out
wait that's the wrong link
Fixed it, off by one error 🙂