AllowedHeads
関数が降りていくかもしれない部分式の頭部を指定するオプションである.
詳細
- 関数によって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は,行列でもあり頭部Listも持つlistMatに対してのみTrueを与える:
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 Language. 2019. "AllowedHeads." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/AllowedHeads.html.
APA
Wolfram Language. (2019). AllowedHeads. Wolfram Language & System Documentation Center. Retrieved from 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: 14-October-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: 14-October-2026]}