expression - 从 Julia 中的列表表达式创建表达式列表

标签 expression julia metaprogramming

有没有一种方法可以在 Julia 中从列表表达式转换为表达式列表,而无需评估中介?

julia> l = :([1, 2+x, 5, 3/x])
:([1, 2 + x, 5, 3 / x])

julia> @eval [$(quote e end) for e in $l]
ERROR: UndefVarError: x not defined

理想的状态是:

[1, :(2 + x), 5, :(3 / x)])

最佳答案

这是这样做的方法(如果我正确理解你想要什么):

julia> l.args
4-element Array{Any,1}:
 1
  :(2 + x)
 5
  :(3 / x)

关于expression - 从 Julia 中的列表表达式创建表达式列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55677746/

相关文章:

ruby - Sinatra 是如何定义和调用 get 方法的?

c++ - C++ 中方法参数类型的静态自省(introspection)

python - python属性的get和set顺序是什么?

c# - 将条件表达式解析为字符串

r - 用带有对象的多行表达式注释 ggplot 图?

arrays - 在 Julia 中初始化一个包含大量数组的空数组

Julia:哪个环境变量/设置控制在 repl 中为数组打印的元素数量?

c# short if 语句不适用于 int? (整数=空)

PHP 预匹配?如何返回不匹配的字符?

r - 在 Julia 中链接操作时显式指定参数