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 Kaavya Shah Attendance: links.cs61a.org/albert-disc Slides: albertxu.xyz/teaching/cs61a/ Announcements Higher order functions! Higher order functions! just kidding i hate


  1. CS 61A Discussion 2 Environments and Higher Order Functions Albert Xu Kaavya Shah Attendance: links.cs61a.org/albert-disc Slides: albertxu.xyz/teaching/cs61a/

  2. Announcements

  3. Higher order functions!

  4. Higher order functions! just kidding i hate this name. I think this just makes this idea really confusing.

  5. functions can return other functions

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

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

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

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

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

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

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

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

  14. 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.

  15. 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

  16. 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

  17. 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!

  18. 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!

  19. 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!

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

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

Recommend


More recommend