需要帮助避免条件或模式测试中的列表

我们如何使用条件或模式测试使我们的函数接受任何符号作为输入除了列表?     
已邀请:
使用
Except
f[x : Except[_List]] := doSomethingTo[x]

expr /. x : Except[_List] :> doSomethingElseTo[x]
你可以将它与
Alternatives
(中缀运算符
|
)结合起来排除几件事:
g[x : Except[_List | _Rational]] := etc[x]
编辑:合并评论中的答案: 如果
expr
是一个列表(头部为
List
),则
ListQ[expr]
将返回
True
,否则返回
False
MatchQ[expr, _List]
Head[expr]===List
是完成同样事情的等效方法。     

要回复问题请先登录注册