week1b_sol - CS61ANotes02ProceduresasData...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
CS61A Notes 02 – Procedures as Data What in the world is  lambda QUESTIONS : What do the following evaluate to?  Describe the result: if it is self-evaluating,  determine the value; if it is a procedure, describe the number of arguments it takes. 1. (lambda (x) (* x 2)) This returns a procedure that takes in one argument. 2. ((lambda (y) (* (+ y 2) 8)) 10) This creates a procedure with one argument and then calls this procedure on the value  10 .  The  final answer is  96 . 3. ( (lambda (b) (* 10 ((lambda (c) (* c b)) b))) ((lambda (e) (+ e 5)) 5)) Notice that this statement is a call to the procedure defined in bold, whose argument is the result  of calling  another  procedure on the value  5 .  As a result,  b  will be given the value  10 .  In the  body of the bold procedure, another procedure is called with  b  as argument, and thus  c  will be  given the value  10 .  The statement thus evaluates to  1000 . 4. ( (lambda (a) (a 3)) (lambda (z) (* z z))) This is a call to the procedure defined in bold, which calls its argument on the value  3 .  Since its  argument is a squarer, this statement evaluates to  9 . 5. ( (lambda (n) (+ n 10)) ( (lambda (m) (m ((lambda (p) (* p 5)) 7))) (lambda (q) (+ q q)))) The substitution model helps here, as does giving each nameless procedure a name.  Again, this  is a call to the procedure defined in bold, with the rest of the statement as its only argument.  The rest of the statement is itself a call to the procedure defined in italics, with  (lambda (q) (+ q q)) as its argument.  The argument to the procedure defined in italics must be a  procedure itself, because it will be called in the body.  We encourage you to continue to trace  this through; the answer is 
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 4

week1b_sol - CS61ANotes02ProceduresasData...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online