在朱莉娅中使用引用的表达式和数组

时间:2017-06-14 07:48:54

标签: julia julia-jump

我在处理一个点上索引的数组与一个引用表达式中该点上的项之间的差异时遇到了一些麻烦,可以通过这个简单的例子看到:

julia> A=[:(2+3),:(4),:(9-8)];
julia> t=A[1];
julia> eval(quote 
       @show isequal($A[1],$t)
       @show $A[1]
       @show $t
       end)
isequal((Any[:(2 + 3),4,:(9 - 8)])[1],2 + 3) = false
(Any[:(2 + 3),4,:(9 - 8)])[1] = :(2 + 3)
2 + 3 = 5
5

我需要以编程方式访问A的内容,因此我不能简单地将t用于我的应用程序。所以,这样的事情不会起作用:

julia> A=[:(2+3),:(4),:(9-8)];

julia> eval(quote
       for i in 1:2
       @show $(A[i])
       end
       end)
ERROR: UndefVarError: i not defined

但是,对于我的详细here工作的应用程序,我需要一些东西(也许是一个临时变量,我尝试过不成功......)等于t。另外,遗憾的是我不能只使用eval。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要插入所有$(A[1]),而不是现在应用[1]上的$A

eval(quote
          @show isequal($(A[1]),$t)
          @show $(A[1])
          @show $t
      end)
isequal(2 + 3, 2 + 3) = true
2 + 3 = 5
2 + 3 = 5
5