lecture 4: environment...

86
Brian Hou June 21, 2016 Lecture 4: Environment Diagrams

Upload: others

Post on 22-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Brian Hou June 21, 2016

Lecture 4: Environment Diagrams

Page 2: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

Page 3: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

• Homework 1 is due Sunday 6/26

Page 4: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

• Homework 1 is due Sunday 6/26• Project 1 is released, due Thursday 6/30

Page 5: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

• Homework 1 is due Sunday 6/26• Project 1 is released, due Thursday 6/30

• Earn 1 EC point for completing it by Wednesday 6/29

Page 6: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

• Homework 1 is due Sunday 6/26• Project 1 is released, due Thursday 6/30

• Earn 1 EC point for completing it by Wednesday 6/29• Go to discussion today! Each discussion is worth two exam

recovery points

Page 7: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Announcements

• Homework 1 is due Sunday 6/26• Project 1 is released, due Thursday 6/30

• Earn 1 EC point for completing it by Wednesday 6/29• Go to discussion today! Each discussion is worth two exam

recovery points

• Ask questions during lecture on Piazza!

Page 8: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Roadmap

Introduction

Functions

Data

Mutability

Objects

Interpretation

Paradigms

Applications

Page 9: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Roadmap

• This week (Introduction), the goals are: • To learn the fundamentals of

programming • To become comfortable with Python

Introduction

Functions

Data

Mutability

Objects

Interpretation

Paradigms

Applications

Page 10: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Abstraction

Page 11: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Abstraction

"The essence of abstraction is preserving information that is relevant in a given context, and forgetting information that is irrelevant in that context."

- John V. Guttag, Introduction to Computation and Programming Using Python

Page 12: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

Page 13: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

pyramid(4)

Page 14: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

b

pyramid(4)

Page 15: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

b

pyramid(4)

Page 16: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

b

pyramid(4)

Page 17: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

b

pyramid(4)

Page 18: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

b

pyramid(4)

Page 19: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 20: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 21: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 22: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 23: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 24: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

pyramid(4)

Page 25: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Discussion Question 1

def pyramid(n): a, b, total = 0, n, 0 while b: a, b = a+1, b-1 total = total + a + b return total

n2 + 1

(n+ 1)2

2 · (n+ 1)

n2

n · (n+ 1)

What does pyramid compute?

a b

square(4)

Page 26: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

Page 27: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

Page 28: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

Page 29: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

Page 30: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?3

Page 31: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?

3

4

Page 32: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?

3

4

Page 33: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?

add ?3

4

Page 34: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?

add ?3

4

Page 35: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?sqrt ?

add ?3

4

Page 36: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Tools for abstraction

• Assignment is a simple form of abstraction: bind names to values

• Function definition is a more powerful form of abstraction: bind names to a series of computations

• Functional abstraction is the idea that we can call functions without thinking about how the function works

square ?

square ?sqrt ?

add ?3

4 5

Page 37: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Miscellaneous Python features

• Operators • Multiple return values • Docstrings • Doctests • Default arguments

(demo)

Page 38: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Environment Diagrams

Page 39: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

Page 40: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

Page 41: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

Page 42: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

Page 43: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

Page 44: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

Page 45: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

Page 46: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

Page 47: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

if elem > largest:

Page 48: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

if elem > largest:

largest = elem

Page 49: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

if elem > largest:

largest = elem

return largest - smallest

Page 50: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

if elem > largest:

largest = elem

return largest - smallest

max_difference(s)

Page 51: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lists and for Loops

s = [3, 1, 4, 1, 5, 9]

def max_difference(s):

smallest = s[0]

largest = s[0]

for elem in s:

if elem < smallest:

smallest = elem

if elem > largest:

largest = elem

return largest - smallest

max_difference(s)

(demo)

Page 52: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

Page 53: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

Page 54: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

Page 55: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

Page 56: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

Page 57: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

Page 58: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

Page 59: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

Page 60: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

Page 61: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

repeated(square, x, 3)

Page 62: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Functions and while loops

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

repeated(square, x, 3)

(demo)

Page 63: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

Page 64: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

Page 65: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

Page 66: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

Page 67: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

An expression: this one evaluates to a number

Page 68: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Page 69: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Page 70: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!

Page 71: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

Page 72: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter x

Page 73: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Page 74: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

>>> square(4)

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Page 75: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

>>> square(4)

16

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Page 76: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

>>> square(4)

16

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Must be a single expression

Page 77: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

>>> square(4)

16

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Must be a single expression

Lambda expressions in Python cannot contain statements at all!

Page 78: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

Lambda Expressions

>>> x = 10

>>> square = x * x

>>> square = lambda x: x * x

>>> square(4)

16

An expression: this one evaluates to a number

Also an expression: evaluates to a function

Important: No "return" keyword!A function

with parameter xthat returns the value of "x * x"

Must be a single expression

Lambda expressions aren't common in Python, but important in general

Lambda expressions in Python cannot contain statements at all!

Page 79: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

repeated(square, x, 3)

Page 80: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

repeated(square, x, 3)

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

square = lambda x: x * x

repeated(square, x, 3)

Page 81: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

def square(x):

return x * x

repeated(square, x, 3)

x = 2

def repeated(f, n, x):

while n > 0:

x = f(x)

n -= 1

return x

square = lambda x: x * x

repeated(square, x, 3)

(demo)

Page 82: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

Page 83: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

Page 84: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

Page 85: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda

Page 86: Lecture 4: Environment Diagramsinst.eecs.berkeley.edu/.../assets/slides/04-Environment_Diagrams_full.pdf · Lecture 4: Environment Diagrams Announcements Announcements • Homework

lambda