Displaying 1 result from an estimated 1 matches for "genr2".
Did you mean:
genre
2010 Feb 14
1
unexpected results with higher-order functions and lapply
...genr1)
> l1[[1]]()
[1] 2
This was unexpected. I had expected the answer to be 1, since that is the
value k should be bound to when genr1 is applied to the first element of
1:2.
By itself genr1 seems to work fine.
> genr1(5)()
[1] 5
I defined a slightly different higher-order function:
> genr2 <- function(k) {k;function() {k}}
> l2 <- lapply(1:2,genr2)
> l2[[1]]()
[1] 1
This gives the answer I expected.
Now I am confused. The function returned by genr2 is exactly the same
function that was being returned by genr1. Why should evaluating k make a
difference?
I am using R 2.9...