61a lecture 2 - university of california,...
TRANSCRIPT
![Page 1: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/1.jpg)
61A Lecture 2
Friday, January 23, 2015
![Page 2: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/2.jpg)
61A Lecture 2
Thursday, January 22, 2015
![Page 3: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/3.jpg)
Announcements
2
![Page 4: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/4.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
2
![Page 5: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/5.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
2
![Page 6: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/6.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
2
![Page 7: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/7.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
2
![Page 8: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/8.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
2
![Page 9: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/9.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
• Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
2
![Page 10: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/10.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
• Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
§2 locations in Bechtel Engineering Center (Map: http://goo.gl/dAcHXf)
2
![Page 11: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/11.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
• Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
§2 locations in Bechtel Engineering Center (Map: http://goo.gl/dAcHXf)
§11-2 & 3-5 on Monday, 11-6 on Tuesday & Thursday, 11-2 & 3-4 on Wednesday, 11-1 on Friday
2
![Page 12: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/12.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
• Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
§2 locations in Bechtel Engineering Center (Map: http://goo.gl/dAcHXf)
§11-2 & 3-5 on Monday, 11-6 on Tuesday & Thursday, 11-2 & 3-4 on Wednesday, 11-1 on Friday
• You need to register a class account (Lab 0); that's how we track assignments
2
![Page 13: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/13.jpg)
Announcements
• Starting next week, submitting labs & attending section will provide a midterm safety net
• Homework 1 is due next Wednesday 1/28
§All homework is graded on effort; you must make progress on each problem to earn 2/2
§Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
• Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
• Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
§2 locations in Bechtel Engineering Center (Map: http://goo.gl/dAcHXf)
§11-2 & 3-5 on Monday, 11-6 on Tuesday & Thursday, 11-2 & 3-4 on Wednesday, 11-1 on Friday
• You need to register a class account (Lab 0); that's how we track assignments
§Please register even if you're on the waitlist or applying for concurrent enrollment
2
![Page 14: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/14.jpg)
Names, Assignment, and User-Defined Functions
(Demo)
![Page 15: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/15.jpg)
Types of Expressions
4
![Page 16: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/16.jpg)
Types of Expressions
Primitive expressions:
4
![Page 17: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/17.jpg)
Types of Expressions
Primitive expressions: 2
Number or Numeral
4
![Page 18: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/18.jpg)
Types of Expressions
Primitive expressions: 2 add
Number or Numeral Name
4
![Page 19: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/19.jpg)
Types of Expressions
Primitive expressions: 2 add 'hello'
Number or Numeral Name String
4
![Page 20: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/20.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
Number or Numeral Name String
4
![Page 21: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/21.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Number or Numeral Name String
4
![Page 22: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/22.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Operator
Number or Numeral Name String
4
![Page 23: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/23.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Operator Operand Operand
Number or Numeral Name String
4
![Page 24: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/24.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Operator Operand Operand
max(min(pow(3, 5), -4), min(1, -2))
Number or Numeral Name String
4
![Page 25: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/25.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Operator Operand Operand
max(min(pow(3, 5), -4), min(1, -2))
Number or Numeral Name String
4
An operand can also be a call expression
![Page 26: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/26.jpg)
Types of Expressions
Primitive expressions:
Call expressions:
2 add 'hello'
max ( 2 , 3 )
Operator Operand Operand
max(min(pow(3, 5), -4), min(1, -2))
Number or Numeral Name String
4
An operand can also be a call expression
![Page 27: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/27.jpg)
Discussion Question 1
5
![Page 28: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/28.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
5
![Page 29: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/29.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
5
![Page 30: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/30.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
5
![Page 31: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/31.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
>>> g, h = min, max
5
![Page 32: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/32.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
>>> g, h = min, max
>>> max = g
5
![Page 33: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/33.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
>>> g, h = min, max
>>> max = g
>>> max(f(2, g(h(1, 5), 3)), 4)
5
![Page 34: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/34.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
>>> g, h = min, max
>>> max = g
>>> max(f(2, g(h(1, 5), 3)), 4)
???
5
![Page 35: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/35.jpg)
Discussion Question 1
What is the value of the final expression in this sequence?
>>> f = min
>>> f = max
>>> g, h = min, max
>>> max = g
>>> max(f(2, g(h(1, 5), 3)), 4)
???
5
![Page 36: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/36.jpg)
Environment Diagrams
![Page 37: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/37.jpg)
Environment Diagrams
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 38: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/38.jpg)
Environment Diagrams
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 39: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/39.jpg)
Environment Diagrams
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 40: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/40.jpg)
Environment Diagrams
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 41: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/41.jpg)
Environment Diagrams
Statements and expressions
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 42: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/42.jpg)
Environment Diagrams
Import statement
Statements and expressions
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7Interactive Diagram
![Page 43: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/43.jpg)
Environment Diagrams
Import statement
Statements and expressions
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Assignment statement
Interactive Diagram
![Page 44: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/44.jpg)
Environment Diagrams
Import statement
Statements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Assignment statement
Interactive Diagram
![Page 45: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/45.jpg)
Environment Diagrams
Import statement
Statements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Assignment statement
Interactive Diagram
![Page 46: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/46.jpg)
Environment Diagrams
Import statement
Statements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 47: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/47.jpg)
Environment Diagrams
Import statement
Each name is bound to a valueStatements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 48: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/48.jpg)
Environment Diagrams
Name
Import statement
Each name is bound to a valueStatements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 49: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/49.jpg)
Environment Diagrams
Name Value
Import statement
Each name is bound to a valueStatements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 50: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/50.jpg)
Environment Diagrams
Name Value
Import statement
Each name is bound to a value
Within a frame, a name cannot be repeated
Statements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 51: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/51.jpg)
Environment Diagrams
(Demo)
Name Value
Import statement
Each name is bound to a value
Within a frame, a name cannot be repeated
Statements and expressions
Arrows indicate evaluation order
Frames (right):Code (left):
Environment diagrams visualize the interpreter’s process.
7
Just executed
Next to execute Assignment statement
Interactive Diagram
![Page 52: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/52.jpg)
Assignment Statements
8Interactive Diagram
![Page 53: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/53.jpg)
Assignment Statements
8Interactive Diagram
![Page 54: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/54.jpg)
Assignment Statements
8Interactive Diagram
![Page 55: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/55.jpg)
Assignment Statements
8
Just executed
Interactive Diagram
![Page 56: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/56.jpg)
Assignment Statements
8
Just executed
Next to execute
Interactive Diagram
![Page 57: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/57.jpg)
Assignment Statements
Execution rule for assignment statements:
8
Just executed
Next to execute
Interactive Diagram
![Page 58: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/58.jpg)
Assignment Statements
Execution rule for assignment statements:
1. Evaluate all expressions to the right of = from left to right.
8
Just executed
Next to execute
Interactive Diagram
![Page 59: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/59.jpg)
Assignment Statements
Execution rule for assignment statements:
1. Evaluate all expressions to the right of = from left to right.
2. Bind all names to the left of = to those resulting values in the current frame.
8
Just executed
Next to execute
Interactive Diagram
![Page 60: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/60.jpg)
Assignment Statements
Execution rule for assignment statements:
1. Evaluate all expressions to the right of = from left to right.
2. Bind all names to the left of = to those resulting values in the current frame.
8
Just executed
Just executed
Next to execute
Interactive Diagram
![Page 61: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/61.jpg)
Assignment Statements
Execution rule for assignment statements:
1. Evaluate all expressions to the right of = from left to right.
2. Bind all names to the left of = to those resulting values in the current frame.
8
Just executed
Just executed
Next to execute
Interactive Diagram
![Page 62: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/62.jpg)
Discussion Question 1 Solution
9
(Demo)
Interactive Diagram
![Page 63: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/63.jpg)
Discussion Question 1 Solution
9
(Demo)
Interactive Diagram
![Page 64: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/64.jpg)
Discussion Question 1 Solution
9
(Demo)
Interactive Diagram
![Page 65: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/65.jpg)
Discussion Question 1 Solution
9
(Demo)
Interactive Diagram
![Page 66: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/66.jpg)
Discussion Question 1 Solution
9
func min(...)
(Demo)
Interactive Diagram
![Page 67: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/67.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
(Demo)
Interactive Diagram
![Page 68: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/68.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
func max(...) 2
(Demo)
Interactive Diagram
![Page 69: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/69.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
(Demo)
Interactive Diagram
![Page 70: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/70.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
func min(...)
(Demo)
Interactive Diagram
![Page 71: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/71.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
h(1, 5) func min(...)
(Demo)
Interactive Diagram
![Page 72: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/72.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
h(1, 5) func min(...)
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 73: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/73.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
h(1, 5) func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 74: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/74.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 75: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/75.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
g(h(1, 5), 3) 3 func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 76: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/76.jpg)
Discussion Question 1 Solution
9
func min(...) f(2, g(h(1, 5), 3))
3
g(h(1, 5), 3) 3 func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 77: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/77.jpg)
Discussion Question 1 Solution
9
func min(...) 4 f(2, g(h(1, 5), 3))
3
g(h(1, 5), 3) 3 func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 78: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/78.jpg)
Discussion Question 1 Solution
9
func min(...) 4
3
f(2, g(h(1, 5), 3)) 3
g(h(1, 5), 3) 3 func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1
(Demo)
Interactive Diagram
![Page 79: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/79.jpg)
Discussion Question 1 Solution
9
func min(...) 4
3
f(2, g(h(1, 5), 3)) 3
g(h(1, 5), 3) 3 func max(...) 2
3 h(1, 5)
func min(...) 5
5 func max(...) 1 3
(Demo)
Interactive Diagram
![Page 80: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/80.jpg)
Defining Functions
![Page 81: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/81.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
11
![Page 82: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/82.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
11
![Page 83: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/83.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Function signature indicates how many arguments a function takes
11
![Page 84: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/84.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Function signature indicates how many arguments a function takes
Function body defines the computation performed when the function is applied
11
![Page 85: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/85.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Execution procedure for def statements:
Function signature indicates how many arguments a function takes
Function body defines the computation performed when the function is applied
11
![Page 86: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/86.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Execution procedure for def statements:
1. Create a function with signature <name>(<formal parameters>)
Function signature indicates how many arguments a function takes
Function body defines the computation performed when the function is applied
11
![Page 87: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/87.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Execution procedure for def statements:
1. Create a function with signature <name>(<formal parameters>)
2. Set the body of that function to be everything indented after the first line
Function signature indicates how many arguments a function takes
Function body defines the computation performed when the function is applied
11
![Page 88: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/88.jpg)
Defining Functions
Assignment is a simple means of abstraction: binds names to values
Function definition is a more powerful means of abstraction: binds names to expressions
<name>(<formal parameters>):
return <return expression>
>>> def
Execution procedure for def statements:
1. Create a function with signature <name>(<formal parameters>)
2. Set the body of that function to be everything indented after the first line
3. Bind <name> to that function in the current frame
Function signature indicates how many arguments a function takes
Function body defines the computation performed when the function is applied
11
![Page 89: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/89.jpg)
Calling User-Defined Functions
12Interactive Diagram
![Page 90: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/90.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
12Interactive Diagram
![Page 91: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/91.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment
12Interactive Diagram
![Page 92: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/92.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame
12Interactive Diagram
![Page 93: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/93.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
12Interactive Diagram
![Page 94: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/94.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
12Interactive Diagram
![Page 95: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/95.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Built-in function
12Interactive Diagram
![Page 96: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/96.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Built-in function
User-defined function
12Interactive Diagram
![Page 97: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/97.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Local frame
Built-in function
User-defined function
12Interactive Diagram
![Page 98: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/98.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Local frame
Original name of function called
Built-in function
User-defined function
12Interactive Diagram
![Page 99: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/99.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Local frame
Original name of function called
Formal parameter bound to argument
Built-in function
User-defined function
12Interactive Diagram
![Page 100: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/100.jpg)
Calling User-Defined Functions
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment2. Bind the function's formal parameters to its arguments in that frame3. Execute the body of the function in that new environment
Local frame
Original name of function called
Formal parameter bound to argument Return value
(not a binding!)
Built-in function
User-defined function
12Interactive Diagram
![Page 101: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/101.jpg)
Calling User-Defined Functions
13
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment 2. Bind the function's formal parameters to its arguments in that frame 3. Execute the body of the function in that new environment
Interactive Diagram
![Page 102: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/102.jpg)
Calling User-Defined Functions
A function’s signature has all the information needed to create a local frame
13
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment 2. Bind the function's formal parameters to its arguments in that frame 3. Execute the body of the function in that new environment
Interactive Diagram
![Page 103: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/103.jpg)
Calling User-Defined Functions
A function’s signature has all the information needed to create a local frame
13
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment 2. Bind the function's formal parameters to its arguments in that frame 3. Execute the body of the function in that new environment
Interactive Diagram
![Page 104: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/104.jpg)
Calling User-Defined Functions
A function’s signature has all the information needed to create a local frame
13
Procedure for calling/applying user-defined functions (version 1):
1. Add a local frame, forming a new environment 2. Bind the function's formal parameters to its arguments in that frame 3. Execute the body of the function in that new environment
Interactive Diagram
![Page 105: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/105.jpg)
Looking Up Names In Environments
14
![Page 106: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/106.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
14
![Page 107: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/107.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
14
![Page 108: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/108.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
14
![Page 109: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/109.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
14
![Page 110: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/110.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
14
![Page 111: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/111.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
14
![Page 112: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/112.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
A name evaluates to the value bound to that name in the earliest frame of the current environment in which that name is found.
14
![Page 113: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/113.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
A name evaluates to the value bound to that name in the earliest frame of the current environment in which that name is found.
E.g., to look up some name in the body of the square function:
14
![Page 114: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/114.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
A name evaluates to the value bound to that name in the earliest frame of the current environment in which that name is found.
E.g., to look up some name in the body of the square function:
• Look for that name in the local frame.
14
![Page 115: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/115.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
A name evaluates to the value bound to that name in the earliest frame of the current environment in which that name is found.
E.g., to look up some name in the body of the square function:
• Look for that name in the local frame.
• If not found, look for it in the global frame.(Built-in names like “max” are in the global frame too, but we don’t draw them in environment diagrams.)
14
![Page 116: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/116.jpg)
Looking Up Names In Environments
Every expression is evaluated in the context of an environment.
So far, the current environment is either:
• The global frame alone, or
• A local frame, followed by the global frame.
Most important two things I’ll say all day:
An environment is a sequence of frames.
A name evaluates to the value bound to that name in the earliest frame of the current environment in which that name is found.
E.g., to look up some name in the body of the square function:
• Look for that name in the local frame.
• If not found, look for it in the global frame.(Built-in names like “max” are in the global frame too, but we don’t draw them in environment diagrams.)
(Demo)14
![Page 117: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/117.jpg)
Print and None
(Demo)
![Page 118: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/118.jpg)
None Indicates that Nothing is Returned
16
![Page 119: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/119.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
16
![Page 120: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/120.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
16
![Page 121: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/121.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
![Page 122: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/122.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
![Page 123: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/123.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
... No return
![Page 124: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/124.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
>>> does_not_square(4)
No return
![Page 125: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/125.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
>>> does_not_square(4)
No return
None value is not displayed
![Page 126: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/126.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
>>> does_not_square(4)
>>> sixteen = does_not_square(4)
No return
None value is not displayed
![Page 127: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/127.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
>>> does_not_square(4)
>>> sixteen = does_not_square(4)The name sixteen is now bound to the value None
No return
None value is not displayed
![Page 128: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/128.jpg)
None Indicates that Nothing is Returned
The special value None represents nothing in Python
A function that does not explicitly return a value will return None
Careful: None is not displayed by the interpreter as the value of an expression
16
>>> def does_not_square(x):
... x * x
...
>>> does_not_square(4)
>>> sixteen = does_not_square(4)
>>> sixteen + 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
The name sixteen is now bound to the value None
No return
None value is not displayed
![Page 129: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/129.jpg)
Pure Functions & Non-Pure Functions
Pure Functions just return values
Non-Pure Functions have side effects
17
![Page 130: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/130.jpg)
abs
Pure Functions & Non-Pure Functions
Pure Functions just return values
Non-Pure Functions have side effects
17
![Page 131: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/131.jpg)
abs
Pure Functions & Non-Pure Functions
-2Pure Functions just return values
Non-Pure Functions have side effects
17
![Page 132: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/132.jpg)
abs
Pure Functions & Non-Pure Functions
-22
Pure Functions just return values
Non-Pure Functions have side effects
17
![Page 133: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/133.jpg)
abs
Pure Functions & Non-Pure Functions
-22
Pure Functions just return values
Non-Pure Functions have side effects
Argument
17
![Page 134: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/134.jpg)
abs
Pure Functions & Non-Pure Functions
-22
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
![Page 135: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/135.jpg)
abs
Pure Functions & Non-Pure Functions
-22
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
![Page 136: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/136.jpg)
abs
Pure Functions & Non-Pure Functions
-22
2, 100 pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
![Page 137: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/137.jpg)
abs
Pure Functions & Non-Pure Functions
-22
2, 100 pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 138: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/138.jpg)
abs
Pure Functions & Non-Pure Functions
-22
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 139: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/139.jpg)
abs
Pure Functions & Non-Pure Functions
-22
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 140: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/140.jpg)
abs
Pure Functions & Non-Pure Functions
-22
-2 print
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 141: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/141.jpg)
abs
Pure Functions & Non-Pure Functions
-22
-2None
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 142: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/142.jpg)
abs
Pure Functions & Non-Pure Functions
-22
-2None
Python displays the output “-2”
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
17
2 Arguments
![Page 143: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/143.jpg)
abs
Pure Functions & Non-Pure Functions
-22
-2None
Python displays the output “-2”
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
Returns None!
17
2 Arguments
![Page 144: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/144.jpg)
abs
Pure Functions & Non-Pure Functions
-22
-2None
Python displays the output “-2”
2, 1001267650600228229401496703205376
pow
Pure Functions just return values
Non-Pure Functions have side effects
Argument
Return value
A side effect isn't a value; it's anything that happens as a consequence of
calling a function
Returns None!
17
2 Arguments
![Page 145: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/145.jpg)
Nested Expressions with Print
18
![Page 146: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/146.jpg)
Nested Expressions with Print
print(print(1), print(2))
18
![Page 147: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/147.jpg)
Nested Expressions with Print
print(print(1), print(2))
18
![Page 148: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/148.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
18
![Page 149: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/149.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)print(1)
func print(...) 1
18
![Page 150: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/150.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(1)
func print(...) 1
18
![Page 151: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/151.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(1)
func print(...) 1
None
18
![Page 152: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/152.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(1)
func print(...) 1
Noneprint(2)
2
18
func print(...)
![Page 153: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/153.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(1)
func print(...) 1
Noneprint(2)
2
18
func print(...)
![Page 154: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/154.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(1)
func print(...) 1
Noneprint(2)
2
None
18
func print(...)
![Page 155: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/155.jpg)
Nested Expressions with Print
print(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(...):None, NoneNone
display “None None”
print(1)
func print(...) 1
Noneprint(2)
2
None
18
func print(...)
![Page 156: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/156.jpg)
Nested Expressions with Print
Noneprint(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(...):None, NoneNone
display “None None”
print(1)
func print(...) 1
Noneprint(2)
2
None
18
func print(...)
![Page 157: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/157.jpg)
Nested Expressions with Print
Noneprint(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(...):None, NoneNone
display “None None”
print(1)
func print(...) 1
Noneprint(2)
2
None
18
func print(...)
![Page 158: 61A Lecture 2 - University of California, Berkeleyinst.eecs.berkeley.edu/~cs61a/sp15/assets/slides/02... · 2015. 6. 14. · Statements and expressions Arrows indicate evaluation](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbe7b0a926b9e003e574c31/html5/thumbnails/158.jpg)
Nested Expressions with Print
Noneprint(print(1), print(2))
func print(...)
print(...):1None
display “1”
print(...):2None
display “2”
print(...):None, NoneNone
display “None None”
print(1)
func print(...) 1
Noneprint(2)
2
None
18
Does not get displayed
func print(...)