yes, it uses metadata, and most of the core functions are tagged with types, i.e. https://github.com/candid82/joker/blob/master/core/data/core.joke#L713
Joker simply returns 1 if there are any problems with the code, including read or parse errors
ok
Joker v0.12.2 is out: https://github.com/candid82/joker/releases/tag/v0.12.2
among other things, there is finally a non-hacky way of parsing numbers:
user=> (joker.strconv/atoi "1234")
1234
docs are updated, tests .... some day 🙂
Any tests tho? 😉
Also might be good to update https://candid82.github.io/joker/. I've updated the darwin and linux architectures for https://burleyarch.com/joker/docs/; will do Windows when I next fire up my Win7 machine.
But adding strconv should make Joker vastly more usable for many!
FYI, I've updated my gostd
fork of Joker to 0.12.2, and updated the darwin and linux docs at https://burleyarch.com/joker/docs/. Will update the Windows docs when I next fire up my Win7 machine.
What does this fork provide? Is it fair to assume that it exposes Go stdlib?
That's the idea. Still needs a lot of work to be really useful, but (for example) it already usefully exposed strconv
before Roman hand-crafted the new Joker wrapper for it.
But by "exposed" it is really just a low-level automated exposing/wrapping -- little or no Clojure-style wrapping.
For example, joker.strconv/atoi
throws an exception upon a parse error, and otherwise returns a Number
; while std.go.strconv/atoi
returns a two-element vector, the first being the Number
(if any), the second being the "error object" (a conversion of error
to something Joker/Clojure-like), and presumably never throws.
Correction: it's actually go.std.strconv/Atoi
, as the namespaces my fork adds all being with go.
, and the function names are all capitalized (and CamelCased) because they're the same names Go gives the function/receiver names (which start with a capital letter when they're public).
I see, thanks for the clarification!