From 4e76d5247063dbd66772a7372e7c237d32a3cc70 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 5 Feb 2016 22:40:12 -0500 Subject: [PATCH] WIP --- scheme/lazy.sld | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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))))))))