diff --git a/csi.scm b/csi.scm
index 5f424f6..dcf512e 100644
a
|
b
|
|
26 | 26 | |
27 | 27 | |
28 | 28 | (declare |
29 | | (uses chicken-syntax srfi-69 ports extras) |
| 29 | (uses chicken-syntax srfi-69 srfi-1 ports extras) |
30 | 30 | (usual-integrations) |
31 | 31 | (disable-interrupts) |
32 | 32 | (disable-warning var) |
… |
… |
EOF |
525 | 525 | (lambda () |
526 | 526 | (write (cadr plist) out) ) ) |
527 | 527 | (newline out) ) ) ) ] |
| 528 | [(circular-list? x) (begin |
| 529 | (fprintf out "circular list: ") |
| 530 | (let loop-print ((x x) |
| 531 | (parsed '())) |
| 532 | (if (not (memq (car x) parsed)) |
| 533 | (begin |
| 534 | (fprintf out "~S -> " (car x)) |
| 535 | (loop-print (cdr x) (cons (car x) parsed))) |
| 536 | (fprintf out " ~S (circle)~%" (car (memq (car x) parsed))))))] |
528 | 537 | [(list? x) (descseq "list" length list-ref 0)] |
529 | 538 | [(pair? x) (fprintf out "pair with car ~S and cdr ~S~%" (car x) (cdr x))] |
530 | 539 | [(procedure? x) |