X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=cps_and_continuation_operators.mdwn;h=0d4eb1dfd2ef10208caa86ee5375454ef4822b63;hp=df27db76bb7955caee494849cd3c03385ea253e2;hb=745774e349b41deea78eab9163f64031016224bb;hpb=be655939804c17330069657c3f59c4beec0704b5 diff --git a/cps_and_continuation_operators.mdwn b/cps_and_continuation_operators.mdwn index df27db76..0d4eb1df 100644 --- a/cps_and_continuation_operators.mdwn +++ b/cps_and_continuation_operators.mdwn @@ -283,7 +283,7 @@ Here are a series of examples from *The Seasoned Schemer*, which we recommended For reminders about Scheme syntax, see [here](/assignment8/) and [here](/week1/) and [here](/translating_between_ocaml_scheme_and_haskell). Other resources are on our [[Learning Scheme]] page. -All of the examples assume the following preface: +Most of the examples assume the following preface: #lang racket @@ -330,13 +330,14 @@ Next, try to figure out what this function does: [(null? l) (k 'notfound)] [(eq? (car l) a) (cdr l)] [(atom? (car l)) (cons (car l) (aux (cdr l) k))] - ; what happens when (car l) exists but isn't an atom? - [else (let ([car2 (let/cc k2 ; now what will happen when k2 is called? - (aux (car l) k2))]) - (cond - ; when will the following condition be met? what happens then? - [(eq? car2 'notfound) (cons (car l) (aux (cdr l) k))] - [else (cons car2 (cdr l))]))]))] + [else + ; what happens when (car l) exists but isn't an atom? + (let ([car2 (let/cc k2 ; now what will happen when k2 is called? + (aux (car l) k2))]) + (cond + ; when will the following condition be met? what happens then? + [(eq? car2 'notfound) (cons (car l) (aux (cdr l) k))] + [else (cons car2 (cdr l))]))]))] [lst2 (let/cc k1 ; now what will happen when k1 is called? (aux lst k1))]) (cond @@ -344,7 +345,6 @@ Next, try to figure out what this function does: [(eq? lst2 'notfound) lst] [else lst2])))) - Here is [the answer](/hints/cps_hint_3), but try to figure it out for yourself. Here is the hardest example. Try to figure out what this function does: