在Mathematica中使用上下文作为作用域构造
|
考虑到我在大型Mathematica项目中关于在数值模式和解析模式之间进行切换的问题的解决方案,我想到了使用“ 0”作为范围构造的想法。
基本思想是在自己的上下文中进行所有数值分配,例如
Begin[\"Global`Numerical`\"]
par1 = 1;
par2 = 2;
...
End[]
并且在全局范围内具有所有复杂的分析功能,矩阵等。
理想情况下,我将能够在Global上下文中工作,并使用简单的Begin[Global\'Numeric\']
切换到所有数字,然后再使用End[]
切换回数字。
不幸的是,由于例如在全局上下文中定义的“ 4”将不使用在全局子上下文中定义的“ 5”,“ 6”等。
有没有一种方法可以使子上下文从其父上下文继承定义?还有其他使用上下文创建简单可切换范围的方法吗?
没有找到相关结果
已邀请:
1 个回复
痰嫉
现在,这将进行分析评估:
从数字上来说:
我说它很脆弱的原因是,除非您小心,否则很容易将符号放入错误的上下文中。例如,假设您在评估\“ numerical \”块之前忘记在全局上下文中评估f。好吧,现在您的数字块将不能简单地工作,因为它将变成一个(完全有效的)符号“ 11”,您在初次评估数字块时无意中将其输入了符号表。由于存在此类潜在错误,因此我个人不使用这种方法。 编辑:修复了一个错误(在数字上下文中进行赋值时,必须隐藏\“ Global \”上下文)