Posso criar uma função anônima dentro de uma compreensão de lista em Julia. Espero que isso crie um tipo de Vector{Function}
. Em vez disso, o tipo é algo como Vector{var"#2#4"}
.
Por exemplo, ao envolver um escopo externo com uma função anônima
typeof(x->x) <: Function # true
a = 1
typeof(x-> x + a) <: Function # false
enquanto
f(x) = x
typeof(f) <: Function # true
a = 1
g(x) = x + a
typeof(g) <: Function # true
Por que a função anônima é digitada de maneira diferente da função regular quando o escopo externo está envolvido?
Agora, em uma compreensão de lista:
typeof([x->x, x->x]) <: AbstractVector{Function} # true
typeof([x->x+i for i in 1:2]) <: AbstractVector{Function} # false
typeof([x->x for i in 1:2]) <: AbstractVector{Function} # false
se o índice i
está ou não envolvido. Eu inicialmente esperava true
em cada caso.