Sun*_*day 3 wolfram-mathematica pattern-matching typechecking
我们如何使用条件或模式测试使我们的函数接受任何符号作为输入除了列表?
用途Except:
f[x : Except[_List]] := doSomethingTo[x]
expr /. x : Except[_List] :> doSomethingElseTo[x]
Run Code Online (Sandbox Code Playgroud)
您可以将其与Alternatives(中缀运算符|)组合以排除多个内容:
g[x : Except[_List | _Rational]] := etc[x]
Run Code Online (Sandbox Code Playgroud)
编辑:合并评论中的答案:
ListQ[expr]将返回True如果expr是列表(有头List)和False否则.MatchQ[expr, _List]并且Head[expr]===List是完成相同事情的等效方法.