Retornando funções anônimas do lapply - o que está errado?

Ao tentar criar uma lista de funções semelhantes usandolapply, Acho que todas as funções na lista são idênticas e iguais ao que o elemento final deveria ser.

Considere o seguinte:

pow <- function(x,y) x^y
pl <- lapply(1:3,function(y) function(x) pow(x,y))
pl
[[1]]
function (x) 
pow(x, y)
<environment: 0x09ccd5f8>

[[2]]
function (x) 
pow(x, y)
<environment: 0x09ccd6bc>

[[3]]
function (x) 
pow(x, y)
<environment: 0x09ccd780>

Quando você tenta avaliar essas funções, obtém resultados idênticos:

pl[[1]](2)
[1] 8
pl[[2]](2)
[1] 8
pl[[3]](2)
[1] 8

O que está acontecendo aqui e como posso obter o resultado que desejo (as funções corretas na lista)?

questionAnswers(2)

yourAnswerToTheQuestion