~ chicken-core (chicken-5) /tests/record-printer-test.scm
Trap1;;;; record-printer-test.scm23(import (chicken format)4 (chicken string))56(define-record kons x y)78;; no printer to start out910(assert (not (record-printer kons)))11(assert (equal? "#<kons>" (conc (make-kons 1 2))))1213;; custom printer1415(set-record-printer! kons16 (lambda (k p)17 (fprintf p "#<kons ~a ~a>" (kons-x k) (kons-y k))))1819(assert (equal? "#<kons 1 2>" (conc (make-kons 1 2))))2021;; srfi-17 style assignment2223(assert (procedure? (setter record-printer)))2425(set! (record-printer kons)26 (lambda (k p)27 (fprintf p "#[~a . ~a]" (kons-x k) (kons-y k))))2829(assert (equal? "#[1 . 2]" (conc (make-kons 1 2))))