匿名函数Julia-x的值

匿名函数Julia-x的值,julia,jupyter,Julia,Jupyter,我不明白x是从哪里初始化的,因为它将用于下一步的比较 我试图显示x或a的值 我有以下代码: a = x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0)) println(a) a=x->ifelse(ε>x,1,ifelse(εifelse(ε>x,1,ifelse(ε

我不明白x是从哪里初始化的,因为它将用于下一步的比较

我试图显示
x
a
的值

我有以下代码:

a = x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0))
println(a)
a=x->ifelse(ε>x,1,ifelse(ε<-x,-1,0))
println(a)
x之前没有初始化-这段代码是什么意思?
是否为正态分布的x随机数,平均值为0?

以下是您所指代码的简化版本:

θ = zeros(1000) # or some other vector
ε = randn()
sum(x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0)), θ)

Julia中的函数是一级对象:可以将它们分配给变量,并使用已分配给它们的变量的标准函数调用语法调用它们。它们可以用作参数,也可以作为值返回。也可以使用以下任一语法匿名创建它们,而无需指定名称:

考虑下面的一个简单函数

 function MyPlus(x,y)
       x + y
 end
函数的匿名版本为

a = (x,y) -> x + y
所以我们所拥有的是

符号a表示包含函数的变量a。具体来说,它包含匿名函数

符号x表示用于构造匿名函数的伪变量。它没有超出匿名函数定义的值

符号y表示用于构造匿名函数的虚拟变量。它没有超出匿名函数定义的值

因为x和y都是伪变量,所以它们不需要初始化,并且它们不包含匿名函数定义之外的值。事实上,它们甚至不存在于匿名函数的定义之外

x和y没有什么特别之处,你可以使用任何符号,包括

mama = (baby,toy) -> baby + toy

好的-但是x的值是什么,它是如何定义的-我忽略了这一点。所以,
x
是我理解的
θ的每个元素。难道我们不能让这段代码更具可读性吗?我添加了另一种方法来获得相同的结果。是的,
θ
的每个元素都作为
x
参数传递给匿名函数。酷,这很容易获得,但在我的示例中:
θ的每个元素都作为x参数传递给匿名函数。
这里是
求和(x->ifelse(ε>x,1,ifelse(ε<-x,-1,0)),θ)
。这对我来说不是很可读。
mama = (baby,toy) -> baby + toy