/kernel/generator.hms
http://github.com/vito/hummus · Unknown · 20 lines · 16 code · 4 blank · 0 comment · 0 complexity · 47a2a32c8feaee8f95c0d1b73fa9f933 MD5 · raw file
- (provide! (generator)
- (defn (aux f)
- (define here (get-current-environment))
- (defn (start #ignore)
- (reset
- (lambda (p)
- (f (lambda (v)
- (shift p
- (lambda (k)
- (set! here start k)
- v)))))))
- (lambda () (start #inert)))
- (define quote (vau (e) #ignore e))
- (define generator
- (vau body e
- (eval (list aux (list* lambda (quote (yield)) body)) e))))