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