Julia 朱莉娅:元编程;错误:不支持或放错了表达式$";
为什么我会收到下面的错误消息?(我对Julia的元编程相当陌生。)谢谢Julia 朱莉娅:元编程;错误:不支持或放错了表达式$";,julia,Julia,为什么我会收到下面的错误消息?(我对Julia的元编程相当陌生。)谢谢 这是一个bug,问题记录在这里: 从那以后它就被修好了。正如在对这个问题的评论中所指出的,如果你被困在一个未修复的Julia版本上,有一些黑客的解决方法,但希望你能升级。看起来像是一个在0.4上修复的bug,我得到了Julia>macroexpand(:(b.$d.c)):(b.e.c)输出versioninfo():Julia version 0.4.0-dev+4630提交f299fed(2015-05-04 14:2
这是一个bug,问题记录在这里:
从那以后它就被修好了。正如在对这个问题的评论中所指出的,如果你被困在一个未修复的Julia版本上,有一些黑客的解决方法,但希望你能升级。看起来像是一个在0.4上修复的bug,我得到了
Julia>macroexpand(:(b.$d.c)):(b.e.c)
输出versioninfo()
:Julia version 0.4.0-dev+4630提交f299fed(2015-05-04 14:29 UTC)平台信息:系统:Linux(x86_64-redhat-Linux)CPU:英特尔(R)至强(R)CPU E5-2630 v2@2.60GHz WORD_大小:64 BLAS:libopenblas(使用64位动态搜索号亲和力Sandybridge)LAPACK:libopenblas LIBM:libopenliblibm LLVM-3.3
关于(b.$d.c)
而不是宏扩展(…)
?@ptb感谢您的评论。ex=:(b.$d.c)
抛出与上述错误相同的错误。必须与赋值操作有关。这里发生了一些非常奇怪的事情。macroexpand
不需要,您也不应该得到错误消息。似乎ex=:((b.$d.c)
会做你想做的事。
julia> d = :e
:e
julia> macroexpand(:(b.$d))
:(b.e)
julia> macroexpand(:($d.c))
:(e.c)
julia> macroexpand(:(b.$d.c))
ERROR: unsupported or misplaced expression $
julia> macroexpand(:(b.$(d).c))
ERROR: unsupported or misplaced expression $