From 9ac8f26a70ef4964580d4b68f5d6cf809e3a6246 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Wed, 3 Jun 2026 17:14:10 -0400 Subject: [PATCH] =?UTF-8?q?Add=20core-pr-str=20function=20definition=20(wa?= =?UTF-8?q?s=20missing=20=E2=80=94=20only=20binding=20existed)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit core-pr-str produces Clojure-readable strings: nil→nil, strings→"...", keywords→:kw, booleans→true/false, numbers→string 316 ok, 1 fail (pre-existing, unchanged) --- src/jolt/core.janet | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/jolt/core.janet b/src/jolt/core.janet index de5cb06..c1c10c0 100644 --- a/src/jolt/core.janet +++ b/src/jolt/core.janet @@ -644,6 +644,23 @@ (print "\n") nil) +(defn core-pr-str [& xs] + (def buf @"") + (var i 0) + (let [n (length xs)] + (while (< i n) + (def v (xs i)) + (cond + (nil? v) (buffer/push-string buf "nil") + (string? v) (do (buffer/push-string buf "\"") (buffer/push-string buf v) (buffer/push-string buf "\"")) + (keyword? v) (do (buffer/push-string buf ":") (buffer/push-string buf (string v))) + (= true v) (buffer/push-string buf "true") + (= false v) (buffer/push-string buf "false") + (buffer/push-string buf (string v))) + (when (< (+ i 1) n) (buffer/push-string buf " ")) + (++ i))) + (string buf)) + # ============================================================ # Array primitives (needed for persistent data structures) # ============================================================