chibi-scheme/lib/scheme/lazy.sld
2015-01-26 08:06:59 +09:00

19 lines
454 B
Scheme

(define-library (scheme lazy)
(import (chibi))
(export delay force delay-force make-promise promise?)
(begin
(define (make-promise x)
(delay x)))
(cond-expand
(auto-force
)
(else
(begin
(define (promise? x)
(and (pair? x)
(null? (cdr x))
(pair? (car x))
(or (eq? #t (caar x))
(and (eq? #f (caar x))
(procedure? (cdar x))))))))))