Wolfram mathematica 映射(/@)行为

Wolfram mathematica 映射(/@)行为,wolfram-mathematica,Wolfram Mathematica,我想这很容易,我忽略了这是一个明显的文盲迹象,但无论如何 怎么样 (Map[Sign, LessEqual[x, y]]) === LessEqual[Sign[x], Sign[y]] -> True 但是 在lhs上使用跟踪将有助于显示发生了什么 Trace[Map[Sign, LessEqual[-1, -100]]] Out[2]={{-1看看当你分两步进行时会发生什么: In[1]:= LessEqual[-1,-100] Out[1]= False In[2]:= M

我想这很容易,我忽略了这是一个明显的文盲迹象,但无论如何

怎么样

(Map[Sign, LessEqual[x, y]]) === LessEqual[Sign[x], Sign[y]]
-> True  
但是


在lhs上使用跟踪将有助于显示发生了什么

Trace[Map[Sign, LessEqual[-1, -100]]]

Out[2]={{-1看看当你分两步进行时会发生什么:

In[1]:= LessEqual[-1,-100]
Out[1]= False

In[2]:= Map[Sign, False]
Out[2]= False
第二个结果可能会令人惊讶,但它恰好是
Map
函数的工作原理;如果对长度为0的表达式(如符号
False
)使用
Map
),它只会返回该表达式,而不作更改。另一个示例:

In[3]:= Map[f, "Pillsy"]
Out[3]= "Pillsy"
另一方面,显然

In[4]:= LessEqual[Sign[-1],Sign[-100]]
Out[4]= True

谢谢!你不应该映射你自己!@belisarius如果你不介意受幂等性的折磨,映射你自己是很好的。谢谢!我几乎总是使用带有列表头的映射,所以从来没有关心/意识到这一点。
In[1]:= LessEqual[-1,-100]
Out[1]= False

In[2]:= Map[Sign, False]
Out[2]= False
In[3]:= Map[f, "Pillsy"]
Out[3]= "Pillsy"
In[4]:= LessEqual[Sign[-1],Sign[-100]]
Out[4]= True