我可以在 Julia 的列表理解中创建一个匿名函数。我希望这会创建一种Vector{Function}
. 相反,类型类似于Vector{var"#2#4"}
.
例如,当涉及具有匿名函数的外部作用域时
typeof(x->x) <: Function # true
a = 1
typeof(x-> x + a) <: Function # false
尽管
f(x) = x
typeof(f) <: Function # true
a = 1
g(x) = x + a
typeof(g) <: Function # true
当涉及外部作用域时,为什么匿名函数的类型与常规函数不同?
现在,在列表理解中:
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
是否i
涉及索引。我最初预计true
每种情况都会发生。