008-make-namer.scm (559B)
1 ;; tests/cc-util/08-make-namer.scm — make-namer yields prefix0, prefix1, ... 2 ;; with each closure carrying its own counter. 3 ;; Assumes cc/util.scm is loaded. 4 5 (define n1 (make-namer "L")) 6 (if (bv= (n1) "L0") 0 (sys-exit 1)) 7 (if (bv= (n1) "L1") 0 (sys-exit 2)) 8 (if (bv= (n1) "L2") 0 (sys-exit 3)) 9 10 ;; A second namer has its own counter; doesn't share state with n1. 11 (define n2 (make-namer "tmp_")) 12 (if (bv= (n2) "tmp_0") 0 (sys-exit 4)) 13 (if (bv= (n1) "L3") 0 (sys-exit 5)) ; n1 keeps counting 14 (if (bv= (n2) "tmp_1") 0 (sys-exit 6)) 15 16 (sys-exit 0)