Babashka runs on GraalVM, as opposed to the usual JVM.
I understand the frustration with Clojure errors, but am surprised that a lack of syntax would rule a programming language out.
I understand the frustration with Clojure errors, but am surprised that a lack of syntax would rule a programming language out.
One very nice thing in Elixir that ends up removing a ton of (possibly buggy) boilerplate logic on function entry is that the function heads pattern-match deeply on the structure of the input while also doing inline assignments.
For pipes, the answer is definitely yes though. Clojure has arrow macros, which let you compose without nesting just like Elixir.
(->> [1 2 3] (map inc) (filter even?) (reduce +)) => 6
There's one for threading through the first argument, and another for threading through the last, and various others for specific situations. Because they're pretty simple macros to write, I also use similar macros extensively in my CL code. In fact, I actually learned CL after getting used to Elixir so the first entry to my utilities package was a threading macro.