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

标签 wolfram-mathematica pattern-matching typechecking

我们如何使用条件或模式测试来使我们的函数接受除列表之外的任何符号作为输入?

最佳答案

使用 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 是完成相同事情的等效方法。

关于wolfram-mathematica - 需要帮助避免条件或模式测试中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520265/

相关文章:

wolfram-mathematica - 这是 Control[] 与 InputField[] 组合时的错误吗?

wolfram-mathematica - 函数作为模块的参数

wolfram-mathematica - 如何使用代码(不仅仅是按钮)控制触发器状态(暂停、播放)

haskell - 用haskell匹配正整数

python-3.x - Python 3 的类型检查工具

python - 提供与 Python 3.6 变量注释的向后兼容性

matlab - 使用百分位数定义分布

scala - 包含子字符串列表中的确切子字符串的字符串

scala - 使用 try-catch 表达式匹配非异常值的模式

python - 用于 isinstance() 检查的 dict_keys 的显式 python3 类型是什么?