我对朱莉娅来说相当新,所以对我可能有的语言的任何误解表示道歉.我最近大部分时间都在使用Python,并且大量使用了SymPy及其代码生成功能,而且似乎Julia的元编程功能是为了完全按我喜欢的方式编写代码而构建的.
特别是,我想在一组较小的构建块中构建Julia中的块矩阵,其间有一些不同的操作.出于调试目的,并且因为各种中间矩阵用于其他计算,我想将它们保存为包含变量的表达式,这样我就可以快速循环并测试不同的不同输入,而无需将所有内容包装在函数中.
现在,最小的案例研究中,说我有两个表达式mat1 = :a和mat2 = :b我想结合起来,形成一个新的,第三个表达式:
mat3 = :($mat1 + $mat2)
Run Code Online (Sandbox Code Playgroud)
以上方法工作得很好,直到我修改mat1和mat2,在这种情况下,我不得不重新评估mat3,以反映此更新.我认为,这是因为$mat1 + $mat2没有通过mat1和mat2引用,而是在评估该行时内插表达式.我想实现的行为是mat1和mat2不被插入,直到我打电话eval(mat3),最好用最少的样板.
是否有可能以方便的语法实现这一目标?