core: close surfaced gaps — first-class sorted colls, with-out-str, rand arity, deref reduced
jolt-ti9: sorted-map/sorted-set are now first-class across the collection fns — get/assoc/dissoc/conj/contains?/keys/vals/disj and call-as-fn all operate on the wrapper and preserve sort order. The by-comparator constructors (sorted-map-by/ sorted-set-by) now thread the user comparator (numeric or boolean-predicate) through all derived colls. Sorted predicates/ctors/ops moved above core-conj so the collection fns can branch on them; jolt-invoke (interpreter) gets inline branches. jolt-rfw: add with-out-str (binds output to a string buffer) + the macro. jolt-ek3: (rand n) arity and deref-of-reduced (uuid? still deferred). Specs: new io-spec.janet; sorted-spec expanded to pin the now-working map/set ops and by-comparator ordering; predicate/number spec restorations.
This commit is contained in:
parent
ae8b635602
commit
afef55704c
7 changed files with 174 additions and 30 deletions
|
|
@ -131,5 +131,6 @@
|
|||
["rand-int in range" "true" "(let [r (rand-int 5)] (and (integer? r) (>= r 0) (< r 5)))"]
|
||||
["rand-int zero" "0" "(rand-int 1)"]
|
||||
["rand in [0,1)" "true" "(let [r (rand)] (and (>= r 0) (< r 1)))"]
|
||||
["rand n in [0,n)" "true" "(let [r (rand 10)] (and (>= r 0) (< r 10)))"]
|
||||
["rand-nth member" "true" "(contains? #{:a :b :c} (rand-nth [:a :b :c]))"]
|
||||
["rand-nth single" ":x" "(rand-nth [:x])"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue