假设我有一个Symbol
s 的名字列表:
f1 := Print["f1 is evaluated!"];
list = {"f1", "f2"};
Run Code Online (Sandbox Code Playgroud)
以明显的方式Block
,这些Symbol
小号导致他们的评价:
In[19]:= With[{list=Symbol/@list},Block[list,f1//ToString]]
During evaluation of In[19]:= f1 is evaluated!
During evaluation of In[19]:= f1 is evaluated!
Out[19]= Null
Run Code Online (Sandbox Code Playgroud)
但是如果没有评估我们就可以Block
毫无问题
In[20]:= Block[{f1, f2}, f1 // ToString]
Out[20]= "f1"
Run Code Online (Sandbox Code Playgroud)
是否可以在Block
不评估Symbol
s的情况下将此列表注入范围?
我有一个涉及x1,x2,...,x100的表达式,我还有一个lst
包含100个元素的列表,如何将规则应用于此表达式以实现如下所示:
exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]}
Run Code Online (Sandbox Code Playgroud)
谢谢!