diff options
| author | 2025-11-04 08:24:27 -0500 | |
|---|---|---|
| committer | 2025-11-04 08:24:27 -0500 | |
| commit | f1c3054215f58b4a4cca3a7716993c273c87ca74 (patch) | |
| tree | 1ee2cad102f87ff65f5ef12eda019c79110792a0 /lib/cuprate/rewriters/r7rs.sld | |
| parent | start moving implementation-dependent code into separate libraries (diff) | |
move rewriters to implementation file, make rewriter cycle-detecting
Diffstat (limited to '')
| -rw-r--r-- | lib/cuprate/rewriters/r7rs.sld | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/lib/cuprate/rewriters/r7rs.sld b/lib/cuprate/rewriters/r7rs.sld deleted file mode 100644 index b231f81..0000000 --- a/lib/cuprate/rewriters/r7rs.sld +++ /dev/null @@ -1,24 +0,0 @@ -(define-library (cuprate rewriters r7rs) - (import (scheme base)) - (export rewriters rewrite) - (begin - (define (default-on-pair pair) - (cons (rewrite (car pair)) - (rewrite (cdr pair)))) - (define (default-on-vector vec) - (vector-map rewrite vec)) - (define (default-on-error error) - (let ((msg (error-object-message error)) - (irritants (error-object-irritants error))) - (cons 'error (cons msg irritants)))) - (define rewriters - (make-parameter `((,pair? . ,default-on-pair) - (,vector? . ,default-on-vector) - (,error-object? . ,default-on-error)))) - (define (rewrite obj) - (let loop ((rewriters (rewriters))) - (cond - ((null? rewriters) obj) - (((caar rewriters) obj) ((cdar rewriters) obj)) - (else (loop (cdr rewriters)))))))) - |
