Использование Except
:
f[x : Except[_List]] := doSomethingTo[x]
expr /. x : Except[_List] :> doSomethingElseTo[x]
Вы можете комбинировать это с Alternatives
(инфиксный оператор |
), чтобы исключить несколько вещей:
g[x : Except[_List | _Rational]] := etc[x]
Редактировать: Объединение ответов из комментариев тоже:
ListQ[expr]
вернет True
, если expr
является списком (имеет заголовок List
) и False
в противном случае. MatchQ[expr, _List]
и Head[expr]===List
являются эквивалентными способами достижения того же самого.