I have a question about finalizers. If you run the following in csi:
(define x (list 1 2 3)) (begin (set-finalizer! x (lambda (o) (format #t "Delete: ~A~%" o))) #t) (define y (list 4 5 6)) (begin (set-finalizer! y (let ((p x)) (lambda (o) (format #t "Delete: ~A: ~A~%" o p)))) #t) (gc #t) (set! x #f) (gc #t) Why do you get “Delete: (1 2 3)”, the output of the finalizer for x, even though the finalizer for y depends on the value of x? Am I misunderstanding the way finalizer procedures get executed? Alejo. http://azul.freaks-unidos.net/ _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
