((pair? x)
(if (not cont?) (write-char #\( port))
(cond ((eq? (car x) '*circular*)
- (display "(*circ* . #-1#)" port))
+ (display "*circ* . #-1#)" port))
((eq? (car x) '*closure*)
- (display "(*closure* . #-1#)" port))
+ (display "*closure* . #-1#)" port))
(#t
(display (car x) port write?)
(if (pair? (cdr x)) (d (cdr x) #t " ")
(if (and (cdr x) (not (null? (cdr x))))
(begin
(display " . " port)
- (display (cdr x) port write?))))
- (if (not cont?) (write-char #\) port)))))
+ (display (cdr x) port write?))))))
+ (if (not cont?) (write-char #\) port)))
((or (keyword? x) (special? x) (string? x) (symbol? x))
(if (and (string? x) write?) (write-char #\" port))
(if (keyword? x) (display "#:" port))
fputc (VALUE (x), fd);
break;
}
+ case TCLOSURE:
+ {
+ fputs ("#<closure ", fd);
+ display_helper (CDR (x), cont, "", fd);
+ fputs (">", fd);
+ break;
+ }
case TFUNCTION:
{
fputs ("#<procedure ", fd);
case TMACRO:
{
fputs ("#<macro ", fd);
- display_helper (cdr (x), cont, "", fd);
+ display_helper (CDR (x), cont, "", fd);
fputs (">", fd);
break;
}
case TPAIR:
{
if (!cont) fputs ("(", fd);
- if (x && x != cell_nil) fdisplay_ (CAR (x), fd);
- if (CDR (x) && TYPE (CDR (x)) == TPAIR)
- display_helper (CDR (x), 1, " ", fd);
- else if (CDR (x) && CDR (x) != cell_nil)
+ if (CAR (x) == cell_circular)
+ fputs ("*circ* . #-1#", fd);
+ else
{
- if (TYPE (CDR (x)) != TPAIR)
- fputs (" . ", fd);
- fdisplay_ (CDR (x), fd);
+ if (x && x != cell_nil) fdisplay_ (CAR (x), fd);
+ if (CDR (x) && TYPE (CDR (x)) == TPAIR)
+ display_helper (CDR (x), 1, " ", fd);
+ else if (CDR (x) && CDR (x) != cell_nil)
+ {
+ if (TYPE (CDR (x)) != TPAIR)
+ fputs (" . ", fd);
+ fdisplay_ (CDR (x), fd);
+ }
}
if (!cont) fputs (")", fd);
break;