小编dal*_*lum的帖子

在表达式中通过引用传递表达式

我对朱莉娅来说相当新,所以对我可能有的语言的任何误解表示道歉.我最近大部分时间都在使用Python,并且大量使用了SymPy及其代码生成功能,而且似乎Julia的元编程功能是为了完全按我喜欢的方式编写代码而构建的.

特别是,我想在一组较小的构建块中构建Julia中的块矩阵,其间有一些不同的操作.出于调试目的,并且因为各种中间矩阵用于其他计算,我想将它们保存为包含变量的表达式,这样我就可以快速循环并测试不同的不同输入,而无需将所有内容包装在函数中.

现在,最小的案例研究中,说我有两个表达式mat1 = :amat2 = :b我想结合起来,形成一个新的,第三个表达式:

mat3 = :($mat1 + $mat2)
Run Code Online (Sandbox Code Playgroud)

以上方法工作得很好,直到我修改mat1mat2,在这种情况下,我不得不重新评估mat3,以反映此更新.我认为,这是因为$mat1 + $mat2没有通过mat1mat2引用,而是在评估该行时内插表达式.我想实现的行为是mat1mat2不被插入,直到我打电话eval(mat3),最好用最少的样板.

是否有可能以方便的语法实现这一目标?

metaprogramming julia

4
推荐指数
1
解决办法
86
查看次数

标签 统计

julia ×1

metaprogramming ×1