cs 61a discussion 2
play

CS 61A Discussion 2 Environments and Higher Order Functions Albert - PowerPoint PPT Presentation

CS 61A Discussion 2 Environments and Higher Order Functions Albert Xu Slides: albertxu.xyz/teaching/cs61a/ Announcements functions can return other functions functions can return other functions take in functions as arguments functions can


  1. CS 61A Discussion 2 Environments and Higher Order Functions Albert Xu Slides: albertxu.xyz/teaching/cs61a/

  2. Announcements

  3. functions can return other functions

  4. functions can return other functions take in functions as arguments

  5. functions can return other functions take in functions as arguments

  6. functions can return other functions take in functions as arguments >>> f = make_power(3) >>> f(5)

  7. functions can return other functions take in functions as arguments >>> f = make_power(3) >>> f(5) 125

  8. functions can return other functions take in functions as arguments

  9. functions can return other functions take in functions as arguments >>> apply_twice(square, 3) 81

  10. Environment Diagrams let’s look at a function we’ve already seen.

  11. Environment Diagrams let’s look at a function we’ve already seen. draw an environment diagram.

  12. Environment Diagrams let’s look at a function we’ve already seen. def statement procedure: 1) Write the function on the right side, with appropriate intrinsic name + parent 2) Write the name of the function on the left in current frame 3) Draw an arrow to the function object on the right! 4) Skip the body.

  13. Environment Diagrams let’s look at a function we’ve already seen. assignment statement procedure: 1) Evaluate the right hand side 2) Bind that value to a name on the left 3) If the name doesn’t exist in the current frame, add it! Otherwise change the current value

  14. Environment Diagrams let’s look at a function we’ve already seen. function call procedure: 1) Evaluate the operator 2) Evaluate the operands 3) Open the call frame 4) Bind the parameters 5) Evaluate the body

  15. Environment Diagrams let’s look at a function we’ve already seen. function call procedure: 1) Evaluate the operator 2) Evaluate the operands 3) Open the call frame 4) Bind the parameters 5) Evaluate the body *don’t open a frame for built-in functions!

  16. Environment Diagrams let’s look at a function we’ve already seen. hi function call procedure: 1) Evaluate the operator 2) Evaluate the operands 3) Open the call frame 4) Bind the parameters 5) Evaluate the body *don’t open a frame for built-in functions!

  17. Environment Diagrams let’s look at a function we’ve already seen. hi None function call procedure: 1) Evaluate the operator 2) Evaluate the operands 3) Open the call frame 4) Bind the parameters 5) Evaluate the body *don’t open a frame for built-in functions!

  18. Environment Diagrams let’s look at a function we’ve already seen. hi None …and we’re done!

  19. Thanks for coming. Have a great rest of your week! :) Attendance: links.cs61a.org/albert-disc Slides: albertxu.xyz/teaching/cs61a/

Recommend


More recommend