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
I've been thinking about deps management for Joker, but it's a hard problem and I have not had the bandwidth lately to take this on. I want deps to be specified in the code itself, rather than in a separate file processed by a separate tool. Something like (require '<namespace> :from <url>)
, but obviously there is a lot to think about here.
ok
Thanks @roman.bataev! Just discovered your library and I'm loving it 🙂
Joker v0.12.2 is out: https://github.com/candid82/joker/releases/tag/v0.12.2
6👍among other things, there is finally a non-hacky way of parsing numbers:
user=> (joker.strconv/atoi "1234")
1234
3👍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!
1👍