summaryrefslogtreecommitdiffstats
path: root/net/ricketyspace/ror/eleven/lazy.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'net/ricketyspace/ror/eleven/lazy.rkt')
-rw-r--r--net/ricketyspace/ror/eleven/lazy.rkt23
1 files changed, 23 insertions, 0 deletions
diff --git a/net/ricketyspace/ror/eleven/lazy.rkt b/net/ricketyspace/ror/eleven/lazy.rkt
new file mode 100644
index 0000000..6f54719
--- /dev/null
+++ b/net/ricketyspace/ror/eleven/lazy.rkt
@@ -0,0 +1,23 @@
+#lang racket
+
+(define (make-lazy+ i)
+ (lambda ()
+ (apply + (build-list (* 500 i) values))))
+
+
+(define long-big-list (build-list 5000 make-lazy+))
+
+
+(define (compute-every-1000th l)
+ (for/list ([thunk l]
+ [i (in-naturals)]
+ #:when (zero? (remainder i 1000)))
+ (thunk)))
+
+
+(define (memoize.v2 suspended-c)
+ (define (hidden)
+ (define the-value (suspended-c))
+ (set! hidden (lambda () the-value))
+ the-value)
+ (lambda () (hidden)))