mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
29 lines
1.1 KiB
Scheme
29 lines
1.1 KiB
Scheme
|
|
(define-library (srfi 159 base)
|
|
(export
|
|
show fn forked with with! each each-in-list call-with-output
|
|
displayed written written-shared written-simply numeric nothing
|
|
escaped maybe-escaped numeric/si numeric/fitted numeric/comma)
|
|
(import (scheme base) (scheme write) (scheme complex) (scheme inexact)
|
|
(srfi 1) (srfi 69) (chibi string) (chibi monad environment)
|
|
(chibi show shared))
|
|
(cond-expand
|
|
(chibi
|
|
(import (only (chibi) let-optionals*)))
|
|
(else
|
|
(begin
|
|
(define-syntax let-optionals*
|
|
(syntax-rules ()
|
|
((let-optionals* opt-ls () . body)
|
|
(begin . body))
|
|
((let-optionals* (op . args) vars . body)
|
|
(let ((tmp (op . args)))
|
|
(let-optionals* tmp vars . body)))
|
|
((let-optionals* tmp ((var default) . rest) . body)
|
|
(let ((var (if (pair? tmp) (car tmp) default))
|
|
(tmp2 (if (pair? tmp) (cdr tmp) '())))
|
|
(let-optionals* tmp2 rest . body)))
|
|
((let-optionals* tmp tail . body)
|
|
(let ((tail tmp)) . body)))))))
|
|
(include "../166/base.scm")
|
|
(include "../166/write.scm"))
|