summaryrefslogtreecommitdiff
path: root/coding-exercises/3/3.5.1
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-07-06 22:31:56 +0200
committerMike Vink <mike1994vink@gmail.com>2023-07-06 22:31:56 +0200
commita8a8e239968d45cc2539b6a55f4dcde04f5543fd (patch)
tree1f727653bf2f9d6ac5101a19796da851c6f53546 /coding-exercises/3/3.5.1
parent872edd4013539f3dfe2535f95d7efdbb6ca5e797 (diff)
stuff
Diffstat (limited to 'coding-exercises/3/3.5.1')
-rw-r--r--coding-exercises/3/3.5.1/50.rkt30
1 files changed, 30 insertions, 0 deletions
diff --git a/coding-exercises/3/3.5.1/50.rkt b/coding-exercises/3/3.5.1/50.rkt
new file mode 100644
index 0000000..7f235e4
--- /dev/null
+++ b/coding-exercises/3/3.5.1/50.rkt
@@ -0,0 +1,30 @@
+#lang racket
+
+(require "../../../shared/sicp-stream.rkt")
+
+(newline) (print "50") (newline)
+(stream-map (lambda (a b) (+ 1 a b))
+ (stream-enumerate-interval 0 10)
+ (stream-enumerate-interval 0 10))
+
+(newline) (print "51") (newline)
+(define x (stream-map show (stream-enumerate-interval 0 10)))
+(newline)
+(println x)
+(stream-ref x 5)
+(stream-ref x 7)
+
+(newline) (print "52") (newline)
+(define sum 0)
+(define (accum x) (set! sum (+ x sum)) sum)
+
+(define seq (stream-map accum (stream-enumerate-interval 1 20)))
+(define y (stream-filter even? seq))
+(newline) (print "first even is 6 ") (display sum) (newline)
+(define z (stream-filter (lambda (x) (= (remainder x 5) 0))
+ seq))
+(newline) (print "first divisable by 5 is 10, this would be 15 if memoization was not used.") (display sum) (newline)
+(newline) (print "display-ref 7, this just prints the 7th of the filtered seq. Without memoization it would be hard to say what this value is, because it depends on the assignments to sum in the time before this call.") (newline)
+(stream-ref y 7)
+(newline) (print "display-stream")
+(display-stream z)