ConfirmMatch[expr,form]
expr がパターン form と一致することを確認する.その他の場合は囲い込んでいる直近のEncloseにエラーをスローする.
ConfirmMatch[expr,form,info]
expr が確認できないときは,info を評価してスローするエラーにその値を入れる.
ConfirmMatch[expr,form,info,tag]
指定のタグを使って任意のエラーをスローする.
ConfirmMatch
ConfirmMatch[expr,form]
expr がパターン form と一致することを確認する.その他の場合は囲い込んでいる直近のEncloseにエラーをスローする.
ConfirmMatch[expr,form,info]
expr が確認できないときは,info を評価してスローするエラーにその値を入れる.
ConfirmMatch[expr,form,info,tag]
指定のタグを使って任意のエラーをスローする.
詳細
- ConfirmMatch[expr,…]は,expr の確認に成功したときは expr を返す.
- タグが与えられるとConfirmMatchのスコープは動的になる.その他の場合はスコープが語彙的になる. »
- info のデフォルト値はNullである.
- ConfirmMatchによって生成されたFailureオブジェクトには以下のフィールドが含まれる.
-
"Information" ConfirmMatch[expr,form,info,…]からの info "Expression" ConfirmMatch[expr,…]からの expr "Pattern" ConfirmMatch[expr,form,…]からの form - これらのフィールドの値は,failure["prop"]を使ってまたはEnclose[expr,"prop"]で直接取り出すことができる.
例題
すべて開く すべて閉じる例 (2)
ConfirmMatch[expr,form]は,expr が form と一致するときは expr を与える:
Enclose[f[1, ConfirmMatch[2, _Integer], 3]]"foo"は_Integerとは一致しないので,ConfirmMatchは評価を中止して囲い込んでいるEncloseにエラーをスローする:
Enclose[f[1, ConfirmMatch["foo", _Integer], 3]]world[x_] := Enclose[ConfirmMatch[x, _String] <> ", World!"]world["Hello"]world[4]スコープ (3)
ConfirmMatchは,エラーをスローするときは,評価を中止して一致するEncloseに戻る:
Enclose[Echo[1];ConfirmMatch[{1, 2, 3}, _String];Echo[2]]info は,expr が確認できないときしか評価されない:
Enclose[ConfirmMatch[{1, 2, 3}, _List, Echo["info was evaluated"]]]Enclose[ConfirmMatch["not a list", _List, Echo["info was evaluated"]]]動的にキャッチできるようにタグでConfirmMatchを呼び出す関数を作成する:
f[x_] := g[StringReverse[ConfirmMatch[x, _String, Null, "fooTag"]]]h[y_] := Enclose[f[y], Identity, "fooTag"]h["reverseme"]h[42]タグがないとConfirmMatchのスコープは語彙的になる:
f2[x_] := g[StringReverse[ConfirmMatch[x, _String]]]h2[y_] := Enclose[f2[y]]h2[2]
アプリケーション (1)
reverseRoman::nan = "`` is not an integer.";reverseRoman[n_] :=
Enclose[
StringReverse[RomanNumeral[
ConfirmMatch[n, _Integer, Message[reverseRoman::nan, n]]
]],
$Failed&]reverseRoman[21]reverseRoman["veni, vidi, vici"]特性と関係 (1)
ConfirmMatchは,ConfirmByとMatchQでエミュレートできる:
Enclose[f[ConfirmMatch[{1, 2, 3}, {_Integer, 2, _String}]]]Enclose[f[ConfirmBy[{1, 2, 3}, MatchQ[{_Integer, 2, _String}]]]]考えられる問題 (3)
ConfirmMatchにはタグを渡すか語彙的なEncloseの中に置くかしなければならない:
ConfirmMatch[5, _Integer]タグなしのConfirmMatchはシンボルConfirmMatchのインスタンスをタグ付きの異形で置換することで作用する:
Enclose[Hold[ConfirmMatch]]タグ付きのConfirmMatchには,一致するタグを持つConfirmMatchが必要である:
Enclose[ConfirmMatch["hello", _Integer, Null, "foo"], Identity, "bar"]
関連するガイド
-
▪
- ロバスト性とエラー処理 ▪
- フロー制御 ▪
- パッケージの保護
テキスト
Wolfram Research (2020), ConfirmMatch, Wolfram言語関数, https://reference.wolfram.com/language/ref/ConfirmMatch.html.
CMS
Wolfram Language. 2020. "ConfirmMatch." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ConfirmMatch.html.
APA
Wolfram Language. (2020). ConfirmMatch. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ConfirmMatch.html
BibTeX
@misc{reference.wolfram_2026_confirmmatch, author="Wolfram Research", title="{ConfirmMatch}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ConfirmMatch.html}", note=[Accessed: 08-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_confirmmatch, organization={Wolfram Research}, title={ConfirmMatch}, year={2020}, url={https://reference.wolfram.com/language/ref/ConfirmMatch.html}, note=[Accessed: 08-September-2026]}