Code from Marc Feeley's Scheme 2001 paper.
This commit is contained in:
parent
8dc4af1e38
commit
60069b30d4
|
@ -0,0 +1,18 @@
|
|||
|
||||
;; Taken from Marc Feeley's paper "A Better API for First-Class Continunations"
|
||||
;; The version from the workshop proceedings contains a bug in continuation-capture.
|
||||
;; This is the corrected version.
|
||||
|
||||
(define (continuation-capture receiver)
|
||||
((call-with-current-continuation
|
||||
(lambda (cont)
|
||||
(lambda () (receiver cont))))))
|
||||
|
||||
(define (continuation-graft cont thunk)
|
||||
(cont thunk))
|
||||
|
||||
(define (continuation-return cont . returned-values)
|
||||
(continuation-graft
|
||||
cont
|
||||
(lambda () (apply values returned-values))))
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
(define-interface continuation-data-type-interface
|
||||
(export continuation-capture
|
||||
continuation-graft
|
||||
continuation-return))
|
|
@ -0,0 +1,3 @@
|
|||
(define-structure continuation-data-type continuation-data-type-interface
|
||||
(open scheme)
|
||||
(files continuation-data-type))
|
Loading…
Reference in New Issue