Execute environment

Post on 21-Apr-2017

2,110 views 3 download

transcript

> f <- function(x,y) x+y

> f(1,2)

[1] 3

f <-function(x,y) x+y

formals: (x,y)body: x+y

f <-function(x,y) x+y

formals: (x,y)body: x+y

f <-function(x,y) x+y

formals: (x,y)body: x+y

f <-function(x,y) x+y

formals: (x,y)body: x+y

f <-function(x,y) x+y

f <-function(x,y) x+y

f:

formals: (x,y)body: x+y

f <-function(x,y) x+y

f:

formals: (x,y)body: x+y

f <-function(x,y) x+y

f:

formals: (x,y)body: x+y

f:

formals: (x,y)body: x+y

f (1,2)

f:

formals: (x,y)body: x+y

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f:

x:1y:2 formals: x, y

body: x+y

f:

x:1y:2 formals: x, y

body: x+y

x:1, y:2

x:3, y:4, z:5

z:6, w:7

a:1, b:2

x:1, y:2, z:5, w:7a:???, b:???

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

x+y

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

x+y

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

1+2

f (1,2)

f:

formals: (x,y)body: x+y

x:1, y:2

3

3

f:

formals: (x,y)body: x+y

x:1, y:2

3

f:

formals: (x,y)body: x+y

x:1, y:2

3

f:

formals: (x,y)body: x+y

x:1, y:2

3

f:

formals: (x,y)body: x+y

x:1, y:2

> f <- function(x) g(x)

> g <- function(x) h(x)

> h <- function(x) x+1

> f(2)

[1] 3

f <- function(x) g(x)

f:

formals: (x)body: g(x)

f <- function(x) g(x)

f:

formals: (x)body: g(x)

f:

formals: (x)body: g(x)

g <- function(x) h(x)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

g:

g <- function(x) h(x)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

g:

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

g:

h <- function(x) x+1

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

h <- function(x) x+1

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

f(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

f(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

f(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

f(2)

g(x)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

f(2)

g(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

f(2)

x:2

g(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

x:2

f(2)

g(2)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

x:2

f(2)

g(2)h(x)

f:

formals: (x)body: g(x)

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

x:2

f(2)

g(2)h(2)

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

h(2)

f(2)

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

h(2)

f(2)

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

h(2)

f(2)

x+1

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

h(2)

f(2)

2+1

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

h(2)

f(2)

3

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

g(2)

x:2

3

f(2)

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

3

x:2

f(2)

f:

formals: (x)body: g(x)

x:2

formals: (x)body: h(x)

formals: (x)body: x+1

h:g:

x:2

x:2

3

> fact <- function(n) {

+ if (n==1) 1

+ else n * fact(n-1)

+ }

> fact(3)

[1] 6

fact <- function(n) if (n==1) 1 else n*fact(n-1)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

fact <- function(n) if (n==1) 1 else n*fact(n-1)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

fact(3)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

n:3

fact(3)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

n:3

fact(3)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

n:3

fact(3)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

if (n==1) 1else n*fact(n-1)

n:3

fact(3)

fact:

formals: (n)body: if (n==1) 1

else n*fact(n-1)

if (3==1) 1else 3*fact(3-1)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

if (n==1) 1else n*fact(n-1)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

if (2==1) 1else 2*fact(2-1)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*fact(1)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*fact(1)

n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*fact(1)

n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*fact(1)

n:1

if (1==1) 1else fact(1-1)

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*fact(1)

n:1

1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2*1

n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*fact(2)

fact(3)

n:2

2

n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

3*2

fact(3)

n:2 n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

6

fact(3)

n:2 n:1

fact:

formals: (n)body: if (n==1) 1

else fact(n-1)

n:3

6

n:2 n:1

> make.counter <- function(n) {

+ function() {

+ n <<- n+1

+ n

+ }

+ }

> c1 <- make.counter(0)

> c1()

[1] 1

> c2 <- make.counter(100)

> c2()

[1] 101

> c1()

[1] 2

> c2()

[1] 102

make.counter <- function(n) function() { n << - n + 1 n }

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

make.counter <- function(n) function() { n << - n + 1 n }

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

c1 <- make.counter(0)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

c1 <- make.counter(0)

n:0

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

c1 <- make.counter(0)

n:0

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

function() { n << - n + 1 n}

c1 <- make.counter(0)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

function() { n << - n + 1 n}

formals: ()body:{ n <<- n + 1 n }

c1 <- make.counter(0)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

c1 <- make.counter(0)

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:0

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

n

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c1()

1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c2<-make.counter(100)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

c2<-make.counter(100)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c2<-make.counter(100)

n:100

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

c2<-make.counter(100)

n:100

function() { n << - n + 1 n}

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

function() { n << - n + 1 n}

formals: ()body:{ n <<- n + 1 n }

c2<-make.counter(100)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:c2<-make.counter(100)

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:100

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

101

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:101

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:1

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

n

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c1()

2

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:2

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:101

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:102

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n << - n + 1

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:102

formals: ()body:{ n <<- n + 1 n }

c2:c2()

n

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:102

formals: ()body:{ n <<- n + 1 n }

c2:c2()

102

make.counter:

formals: (n)body: function() { n <<- n + 1 n }

n:2

formals: ()body:{ n <<- n + 1 n }

c1:

n:102

formals: ()body:{ n <<- n + 1 n }

c2:102