5 ms·
This looks great, I'm still learning Janet and couldn't write it myself. I only know about: https://github.com/Engelberg/better-cond https://github.com/Engelbe
by codery 11mo ago
This looks great, I'm still learning Janet and couldn't write it myself.
I only know about: https://github.com/Engelberg/better-cond https://github.com/Engelberg/better-cond in clojure which is different it adds syntax enhancement + control flow convenience.
Similar better-cond can be written in clojure too:
(defn better-cond [& clauses]
(fn [& args]
(some (fn [[pred result]]
(when (apply pred args)
(if (fn? result)
(apply result args)
result)))
(partition 2 clauses))))
But it's not composable as Janet's version, it will fail when mapped over, because it may return a plain value instead of a callable one. In Janet, all values can naturally participate in higher-order contexts due to its uniform treatment of callables, while in Clojure, only actual functions can be composed or mapped.