spec: format — CL-style string formatting (~a ~s ~d ~x ~o ~b ~f ~% ~& ~~ ~t)

28 tests, passes on both JS and OCaml.
- spec/stdlib.sx: pure SX format function
- spec/primitives.sx: format primitive declaration
- lib/r7rs.sx: fix number->string to support optional radix arg
- hosts/ocaml: add format-decimal primitive, load stdlib.sx in test runner
- hosts/javascript: load stdlib.sx in test runner

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-01 19:58:54 +00:00
parent 6a34ae3ae1
commit 4d7b3e299c
7 changed files with 243 additions and 2 deletions

View File

@@ -73,7 +73,10 @@
(define string->symbol make-symbol)
(define number->string (fn (n) (str n)))
(define number->string
(let ((prim-n->s number->string))
(fn (n &rest r)
(if (nil? r) (str n) (prim-n->s n (first r))))))
(define
string->number