expr//.rules
expr がこれ以上変わらなくなるまで,繰り返し置き換えを行う.
ReplaceRepeated[rules]
式に適用可能なReplaceRepeatedの演算子形である.
ReplaceRepeated 
expr//.rules
expr がこれ以上変わらなくなるまで,繰り返し置き換えを行う.
ReplaceRepeated[rules]
式に適用可能なReplaceRepeatedの演算子形である.
詳細とオプション
- expr//.rules は,効果的に,この結果が変わらなくなるまで,/.を繰り返し実行する.
- 式に対して/.を使用してひと通り完全な手続きを実行した上で,次の手続きに移行する.
- 演算子//.を使用するときには,無限ループを避けるように十分気を付けること.例えば,コマンドx//.x->x+1は,無限ループに陥る.
- ReplaceRepeatedは,与えられた規則を適用する最大の回数を指定するオプションMaxIterationsを取り込む.このデフォルト設定はMaxIterations->65536である.MaxIterations->Infinityの設定では制限がない.
- ReplaceRepeated[rules][expr]はReplaceRepeated[expr,rules]に等しい.
例題
すべて開く すべて閉じる例 (3)
実数の対数についてベキと積の法則に関する規則を繰り返し適用する:
rules = {Log[x_ y_] :> Log[x] + Log[y], Log[x_ ^ k_] :> k Log[x]};Log[Sqrt[a(b c ^ d) ^ e]] //. rulesReplaceAllは置換を1回だけ行う:
Log[Sqrt[a (b c ^ d) ^ e]] /. rules{f[f[x]], f[x], g[f[x]], f[g[f[x]]]} //. f[x_] -> xReplaceAllは一番外側の頭部のみを削除する:
{f[f[x]], f[x], g[f[x]], f[g[f[x]]]} /. f[x_] -> xReplaceRepeatedを演算子形で使う:
ReplaceRepeated[f[x_] -> x][{f[f[x]], f[g[f[x]]]}]スコープ (3)
x //. {y -> 2, z -> 3}{f[1], f[1, f[1, 2]], f[1, f[1, 2, 3]]} //. f[1, x_Integer] :> 1{f[1], f[1, f[1, 2]], f[1, f[1, 2, 3]]} //. f[1, x__Integer] :> 1{f[1], f[1, f[1, 2]], f[1, f[1, 2, 3]]} //. f[1, x___Integer] :> 1ReplaceRepeatedはホールドされた式の中で使うことができる:
Hold[{f[f[x]], f[x], g[f[x]], f[g[f[x]]]} ] //. f[x_] -> xHold[{f[f[x]], f[x], g[f[x]], f[g[f[x]]]} ] //. f[x_] :> x + xHold[{f[f[x]], f[x], g[f[x]], f[g[f[x]]]} ] //. f[x_] -> x + x特性と関係 (5)
x //. {}置換にリストのリストが使われた場合,結果は同じ長さのリストになる:
x //. {{x -> 1}, {y -> 2}}{g[g[1]], Hold[g[g[1]]]} //. g[n_] -> n + 1ReplaceRepeatedは,事実上,ReplaceAllとFixedPointの組合せである:
f[f[f[f[2]]]] //. f[2] -> 2FixedPoint[# /. f[2] -> 2&, f[f[f[f[2]]]]]ReplaceRepeatedは式の上から複数回スキャンする:
rules = {f[x_] -> f[x, 5], f[x__] -> {x, 1}};{f[a], f[f[a, b]]} //. rulesReplaceAllは可能な限り最大の部分式を置換し,そこで停止する:
{f[a], f[f[a, b]]} /. rules%% == (% /. rules /. rules)レベル指定がAllのReplaceは,すべての部分式を厳密に1回置換しようとする:
Replace[{f[a], f[f[a, b]]}, rules, All]関連項目
テクニカルノート
-
▪
- 変換規則の適用
関連するガイド
-
▪
- 規則 ▪
- 反復写像とフラクタル ▪
- パターンマッチング関数 ▪
- 規則とパターン ▪
- ループ構文
履歴
1988 で導入 (1.0) | 2018 で更新 (11.3)
テキスト
Wolfram Research (1988), ReplaceRepeated, Wolfram言語関数, https://reference.wolfram.com/language/ref/ReplaceRepeated.html (2018年に更新).
CMS
Wolfram Language. 1988. "ReplaceRepeated." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2018. https://reference.wolfram.com/language/ref/ReplaceRepeated.html.
APA
Wolfram Language. (1988). ReplaceRepeated. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ReplaceRepeated.html
BibTeX
@misc{reference.wolfram_2026_replacerepeated, author="Wolfram Research", title="{ReplaceRepeated}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/ReplaceRepeated.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_replacerepeated, organization={Wolfram Research}, title={ReplaceRepeated}, year={2018}, url={https://reference.wolfram.com/language/ref/ReplaceRepeated.html}, note=[Accessed: 03-November-2026]}