SubValues
詳細とオプション
- SubValues[f]=list の形式の割当てを行うことで f についての部分値を指定することができる.
- SubValuesが返すリストはHoldPattern[lhs]:>rhs の形式の要素を持つ.
例題
すべて開く すべて閉じる例 (1)
スコープ (4)
SubValuesはシンボルについて定義された部分値に対応する規則を返す:
f[x_][y_] := x + ySubValues[f]SubValuesは任意の深さの頭部について定義できる:
f[w_][x_][y_][z_] := f[w + x, y z]SubValues[f]f[1][2][3][4]f1[x_][y_][z_] := x + y + z
f2[x_][y_][z_] := x ^ y ^ z
g[x_][y_] := x * ySubValues /@ Names["f*"]SubValuesを使って直接値を設定することができる:
SubValues[f] = {HoldPattern[f[x_][0]] :> x, HoldPattern[f[x_][y_]] :> f[x y][y - 1]}Definition[f]f[1][5]アプリケーション (3)
myDataObj[x_, y_]["Properties"] := {"Properties", "Sum", "Product"}
myDataObj[x_, y_]["Sum"] := x + y
myDataObj[x_, y_]["Product"] := x yこれらの定義はSubValuesとして保存される:
SubValues[myDataObj](p |-> p -> myDataObj[2, 3][p]) /@ {"Properties", "Sum", "Product"}f[x_][y_ /; y > -2] := g1[x, y]
f[x_][y_ /; y < 2] := g2[x, y]SubValues[f]f[3][0]SubValues[f] = Reverse[SubValues[f]]f[3][0]f[x_][0] := x
f[x_][y_] := f[x * y][y - 1]SubValues[g] = SubValues[f] /. f -> gg[1][5]% == f[1][5]特性と関係 (5)
f[_][0] = 0;
f[x_][y_] := x + y;SubValues[f]HoldPatternを使って規則をそれ自身の定義から保護する:
f[x_][y_] := h[x, y]SubValues[f]HoldPatternがないと,左辺が評価されてしまう:
f[x_][y_] :> h[x, y]指定されたシンボルが存在しない場合,SubValues["sym"]はメッセージを出す:
SubValues["f"]f;
SubValues["f"]DefinitionとInformationは部分値を表示するがそれを値として返すことはない:
f[x_][y_] := h[x, y]Definition[f]%//FullFormSubValuesはプログラムで使える値を返す:
SubValues[f]f[x_][y_] := h[x, y]Hold[f[x][y]] /. SubValues[f]履歴
1991 で導入 (2.0) | 1996 で更新 (3.0) ▪ 2022 (13.2)
テキスト
Wolfram Research (1991), SubValues, Wolfram言語関数, https://reference.wolfram.com/language/ref/SubValues.html (2022年に更新).
CMS
Wolfram Language. 1991. "SubValues." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/SubValues.html.
APA
Wolfram Language. (1991). SubValues. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SubValues.html
BibTeX
@misc{reference.wolfram_2026_subvalues, author="Wolfram Research", title="{SubValues}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/SubValues.html}", note=[Accessed: 05-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_subvalues, organization={Wolfram Research}, title={SubValues}, year={2022}, url={https://reference.wolfram.com/language/ref/SubValues.html}, note=[Accessed: 05-November-2026]}