作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在玩 $NewSymbol
试图找到答案this question和。 The docs say that
$NewSymbol is applied before the symbol is actually created. If the action of $NewSymbol causes the symbol to be created, perhaps in a different context, then the symbol as created will be the one used.
Global`*
中的创建。上下文,但符号是在两种上下文中创建的。
In[1]:= Remove["Global`*"]
In[2]:= $NewSymbol=(Print[#1," : ",#2];
If[#1==="aLongTestSymbolName"&==="Global`",
Symbol["TestContext`"<>#1]])&;
In[3]:= x
During evaluation of In[3]:= x : Global`
Out[3]= x
In[4]:= aLongTestSymbolName
During evaluation of In[4]:= aLongTestSymbolName : Global`
During evaluation of In[4]:= aLongTestSymbolName : TestContext`
Out[4]= aLongTestSymbolName
In[5]:= Names["Global`*"]
Out[5]= {aLongTestSymbolName,x}
In[6]:= Names["TestContext`*"]
Out[6]= {TestContext`aLongTestSymbolName}
"aLongTestSymbolName"
不应该在
Global`
语境。
"x"~~___
用于变量和
"f"~~___
对于函数,然后在
$NewSymbol
中使用字符串模式将符号移动到适当的突出显示的上下文中。
最佳答案
那是因为您将符号名称传递给了 Print
,它立即在 Global`
中生成了符号. :-)
或不。我真的应该在回答之前尝试一些事情,但我想我知道这个。哎呀。
现在在我看来 $NewSymbol
不拦截符号的创建,或者如果拦截了,如何使用它尚不清楚。
如果一个人使用:
$NewSymbol = Print["Name: ", #2, #] &;
In[10]:= aNewSymbol
During evaluation of In[10]:= Name: Global`aNewSymbol
Out[10]= aNewSymbol
$NewSymbol
不像
$PrePrint
那样工作因为它的输出不会成为表达式。
$NewSymbol = Symbol["TestContext`" <> #] &;
aSecondSymbol
aSecondSymbol
快乐地创建于
Global`
仿佛什么都没有改变。
$NewSymbol
可用于指导创建符号的上下文,正如文档所述,我不清楚如何做到这一点。
关于wolfram-mathematica - 在 Mathematica 中使用 $NewSymbol 移动上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167406/
自从 NodeJS 升级到 0.11.13,集成了 V8 引擎 3.24.35.22,我在一些 C++ 模块上得到这个错误: error: ‘NewSymbol’ is not a member of
我在玩 $NewSymbol试图找到答案this question和。 The docs say that $NewSymbol is applied before the symbol is act
我是一名优秀的程序员,十分优秀!