From 7c54259fffc321ef49673ea7c8e8228c7d08ff86 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Mon, 6 Dec 2010 03:21:24 -0500 Subject: [PATCH] assignment8 call it tail-thunk not tailk, thanks Douwe Signed-off-by: Jim Pryor --- assignment8.mdwn | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/assignment8.mdwn b/assignment8.mdwn index 42b22e17..f09556f0 100644 --- a/assignment8.mdwn +++ b/assignment8.mdwn @@ -64,7 +64,7 @@ ;; -2. Here's another implementation of the same-fringe function, in Scheme. It's taken from . It uses thunks to delay the evaluation of code that computes the tail of a list of a tree's fringe. It also involves passing continuations (`tailk`s) as arguments. Your assignment is to fill in the blanks in the code, **and also to supply comments to the code,** to explain what every significant piece is doing. Don't forget to supply the comments, this is an important part of the assignment. +2. Here's another implementation of the same-fringe function, in Scheme. It's taken from . It uses thunks to delay the evaluation of code that computes the tail of a list of a tree's fringe. It also involves passing "the rest of the enumeration of the fringe" as a thunk argument (`tail-thunk` below). Your assignment is to fill in the blanks in the code, **and also to supply comments to the code,** to explain what every significant piece is doing. Don't forget to supply the comments, this is an important part of the assignment. This code uses Scheme's `cond` construct. That works like this; @@ -109,11 +109,11 @@ Here is the implementation: (define (lazy-flatten tree) - (letrec ([helper (lambda (tree tailk) + (letrec ([helper (lambda (tree tail-thunk) (cond [(pair? tree) - (helper (car tree) (lambda () (helper _____ tailk)))] - [else (cons tree tailk)]))]) + (helper (car tree) (lambda () (helper _____ tail-thunk)))] + [else (cons tree tail-thunk)]))]) (helper tree (lambda () _____)))) (define (stream-equal? stream1 stream2) -- 2.11.0