AllowedHeads
是一个选项,指定函数可以下临 (descend) 的子表达式的标头.
更多信息
- 不同的函数对 AllowedHeads 有不同的默认设置.
- AllowedHeads 选项的设置包括:
-
Automatic 默认设置 Inherited 只允许 Head[expr] All 允许任意正常表达式标头 h 只允许标头 h {h1,…} 允许 h1,… 中的任意一个 h1|h2|… 将 hi 视为可互换 Full 将所有正则表达式标头视为可互换 - 对于 AllowedHeads,正则表达式标头是非 AtomQ、Association 的表达式的标头或特殊数组对象(例如SparseArray、NumericArray 和 QuantityArray)的标头.
- 对于 Dimensions 之类的函数,设置 AllowedHeads->{h1,h2,…} 要求给定层的所有元素都具有相同的标头. AllowedHeads->{…,g1|g2|…,…} 允许任何 gi 作为给定层的标头.
范例
打开所有单元 关闭所有单元基本范例 (4)
只考虑标头为 List 的嵌套列表:
ArrayDepth[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]ArrayDepth[f[f[1, 2, 3], f[4, 5, 6]]]只考虑标头为 List 的嵌套表达式:
Dimensions[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]Dimensions[f[f[1, 2, 3], f[4, 5, 6]]]Total[f[f[1], g[2π]], ∞, AllowedHeads -> Inherited]Total[f[f[1], g[2π]], ∞, AllowedHeads -> {f, g}]范围 (3)
默认情况下,Total 只在列表表示和关联内求和:
Total[f[1, g[2π]], ∞]Total[f[1, g[2π]], ∞, AllowedHeads -> {f, g}]Total[f[1, g[2π]], ∞, AllowedHeads -> All]Total[g[f[1], g[2π]], ∞, AllowedHeads -> Inherited]Dimensions[f[g[1, 2, 3], g[4, 5, 6]], AllowedHeads -> All]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> All]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> Full]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> {f, g | h}]Dimensions[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> {f, g, h}]应用 (1)
创建只接受列表矩阵的 MatrixQ:
matrixQ[m_] := Length[Dimensions[m, AllowedHeads -> List]] === 2listMat = {{a, b}, {b, c}};
symmetrizedMat = SymmetrizedArray[listMat];
vector = {a, b};
scalar = Sin[x];函数 matrixQ 只对 listMat 给出 True,它是矩阵且标头为 List:
matrixQ /@ {listMat, symmetrizedMat, vector, scalar}对于任何已知数组类型的矩阵,MatrixQ 都给出 True:
MatrixQ /@ {listMat, symmetrizedMat, vector, scalar}属性和关系 (2)
如果标头被排除,将不会就 AllowedHeads 的值对嵌套表达式进行测试:
Total[f[{1, 2, 3}], ∞, AllowedHeads -> List]如果同时允许 f 和 List 作为标头,则对内层列表进行测试并求和:
Total[f[{1, 2, 3}], ∞, AllowedHeads -> {f, List}]AllowedHeads->Automatic 的含义可能因函数而异:
Dimensions[BesselJ[0, 1], AllowedHeads -> Automatic]Total[BesselJ[0, 1], AllowedHeads -> Automatic]文本
Wolfram Research (2019),AllowedHeads,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AllowedHeads.html (更新于 2020 年).
CMS
Wolfram 语言. 2019. "AllowedHeads." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/AllowedHeads.html.
APA
Wolfram 语言. (2019). AllowedHeads. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AllowedHeads.html 年
BibTeX
@misc{reference.wolfram_2026_allowedheads, author="Wolfram Research", title="{AllowedHeads}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/AllowedHeads.html}", note=[Accessed: 10-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_allowedheads, organization={Wolfram Research}, title={AllowedHeads}, year={2020}, url={https://reference.wolfram.com/language/ref/AllowedHeads.html}, note=[Accessed: 10-August-2026]}