diff --git a/scheme/lazy.sld b/scheme/lazy.sld index 24286f5a..93ba53eb 100644 --- a/scheme/lazy.sld +++ b/scheme/lazy.sld @@ -44,3 +44,27 @@ (if (not (promise-done? promise)) (promise-update! promise* promise)) (force promise)))))) + +;; Delayed evaluation functions from husk +;(define force +; (lambda (object) +; (object))) +; +;(define-syntax delay +; (syntax-rules () +; ((delay expression) +; (make-promise (lambda () expression))))) +; +;(define make-promise +; (lambda (proc) +; (let ((result-ready? #f) +; (result #f)) +; (lambda () +; (if result-ready? +; result +; (let ((x (proc))) +; (if result-ready? +; result +; (begin (set! result x) +; (set! result-ready? #t) +; result))))))))