gpt4 book ai didi

wolfram-mathematica - 与某些图案不同的匹配头

转载 作者:行者123 更新时间:2023-12-04 08:14:03 24 4
gpt4 key购买 nike

我想匹配头部与 f 不同的表达式。

这有效

[In]  !MatchQ[t[3], x_ /; Head[x] == f]
[Out] True

但不是这个
 [In]  MatchQ[t[3], x_ /; Head[x] != f]
[Out] False

为什么第二种解决方案不起作用?我怎样才能让它工作?

最佳答案

为什么这不起作用:您必须使用 =!= ( UnsameQ ),而不是 != ( Unequal ) 用于结构比较:

In[18]:= MatchQ[t[3],x_/;Head[x]=!=f]
Out[18]= True

通过评估可以看出原因:
In[22]:= Head[t[3]]!=f
Out[22]= t!=f

运营商 == ( Equal ) 和 != ( Unequal ) 在双方平等(或不平等)的事实无法成立时,对自己进行评估。这在符号环境中是有意义的。我更详细地考虑了这个话题 here ,哪里还有 SameQUnsameQ进行了讨论。

也有更优雅的方式来表达相同的模式,这也会更高效,例如:
MatchQ[t[3],Except[_f]]

关于wolfram-mathematica - 与某些图案不同的匹配头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com