PasteRack.org
Paste # 18033
2014-09-30 06:47:41

Fork as a new paste.

Paste viewed 1355 times.


Embed:

iterator mixin

  1. #lang racket
  2. (require srfi/26)
  3.  
  4. (define (make-iterator-class next-func)
  5.   (class object%
  6.     (super-new)
  7.     (init-field sn)
  8.     (define/public (get-next)
  9.       (set! sn (next-func sn))
  10.       sn)))
  11.  
  12. (define (test)
  13.   (define s1% (make-iterator-class (cut add1 <>)))
  14.   (define s1 (new s1% [sn 10]))
  15.  
  16.   (send s1 get-next)
  17.   (send s1 get-next)
  18.   (send s1 get-next))
  19.  
  20.  
  21. (test)

=>

13