首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在julia中使用带引号的表达式和数组

在julia中使用带引号的表达式和数组
EN

Stack Overflow用户
提问于 2017-06-14 15:48:54
回答 1查看 71关注 0票数 2

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

代码语言:javascript
运行
复制
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用于我的应用程序。所以,像这样的东西是行不通的:

代码语言:javascript
运行
复制
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。非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-06-14 17:46:00

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

代码语言:javascript
运行
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44538634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档