boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

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)