Deduplicate small host helpers
- str-join delegates to str-join-strs (it only adds the per-element render). - loader: extract resolve-on-roots; find-ns-file and load both use it. - NumberFormat registers its short + FQ names from one shared member list. - inst-time's private floor-div/floor-mod renamed inst-floor-* so they don't read as the math.ss reals version. Left the fold/inline/types pure-fn sets and the keyword/symbol ns builders alone: those are file-local and semantically distinct (e.g. the intern key uses NUL, not "/"), so merging them would be wrong.
This commit is contained in:
parent
14547bd1d5
commit
1dcd4678e8
4 changed files with 29 additions and 38 deletions
|
|
@ -196,13 +196,10 @@
|
|||
(if (fx<? i 0) jolt-nil i)))
|
||||
|
||||
;; (str-join coll [sep]) -> stringify each element (Clojure str), join by sep.
|
||||
;; str-join-strs (defined below) does the join; here we just render each element.
|
||||
(define (str-join coll . opt)
|
||||
(let ((sep (if (pair? opt) (jolt-str-render-one (car opt)) ""))
|
||||
(items (map jolt-str-render-one (seq->list coll))))
|
||||
(let loop ((xs items) (first #t) (acc '()))
|
||||
(cond ((null? xs) (apply string-append (reverse acc)))
|
||||
(first (loop (cdr xs) #f (cons (car xs) acc)))
|
||||
(else (loop (cdr xs) #f (cons (car xs) (cons sep acc))))))))
|
||||
(let ((sep (if (pair? opt) (jolt-str-render-one (car opt)) "")))
|
||||
(str-join-strs (map jolt-str-render-one (seq->list coll)) sep)))
|
||||
|
||||
;; (re-split irx s limit) -> parts, splitting at each match. Keeps interior AND
|
||||
;; trailing empty strings (the clojure.string wrapper drops trailing for limit 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue