CheckArguments[f[args],n]
args が厳密に n 個の位置引数に f の有効なオプションが続く形で構成されている場合はTrueを,それ以外の場合はFalseを返す.
CheckArguments[f[args],{min,max}]
位置引数の数が min から max であることを求める.
CheckArguments[f[args],spec,assoc]
連想 assoc の情報に基づいて動作を変更する.
CheckArguments
CheckArguments[f[args],n]
args が厳密に n 個の位置引数に f の有効なオプションが続く形で構成されている場合はTrueを,それ以外の場合はFalseを返す.
CheckArguments[f[args],{min,max}]
位置引数の数が min から max であることを求める.
CheckArguments[f[args],spec,assoc]
連想 assoc の情報に基づいて動作を変更する.
詳細
- CheckArgumentsは,f[…]に無効な数の位置引数や未知のあるいは無効なオプション指定がある場合は,f についての適切なメッセージを出してFalseを返す.
- 連想 assoc には次のキーが使える.
-
"ExtraOptions" {} f の既知のオプションとして扱う追加的なオプション "OptionsMode" "Longest" args の任意の引数をどのように解釈するか - "ExtraOptions"に与えられる追加的なオプションは,規則 nameval として,あるいはシンボル func として指定できる.後者はOptions[func]に等しい.
- CheckArgumentsは,f について指定されている全オプションに有効な名前があるかどうかをチェックする.
- 次の"OptionsMode"の値を使うことができる. »
-
"Longest" OptionsPattern[]にマッチする args のすべての末尾要素を f のオプションとして扱う "Shortest" 1つまたは複数の既知のオプション以外のすべてを位置引数として扱う None すべての要素を位置引数として扱う - たとえ"OptionsMode""Shortest"としても,位置 max を超えたところにある未知のオプションはメッセージを生成する. »
- CheckArgumentsは属性HoldFirstを有する.
例題
すべて開く すべて閉じる例 (1)
スコープ (6)
Options[f] = {a -> 1}CheckArguments[f[1, 2, 3, a -> 0], {1, 3}]CheckArguments[f[1, 2, 3], {2, ∞}]CheckArguments[f[1], {2, ∞}]Options[f] = {a -> 1, b -> 2}CheckArguments[f[1, 2, 3, a -> 0, b -> 0], 3]Options[f]には現れない「隠れた(hidden)」オプションが使えるようにする:
CheckArguments[f[1, a -> 0], 1, <|"ExtraOptions" -> {a -> 1}|>]Options[f]hiddenという名前のオプションをGraphicsの任意のオプションと同様に設定できるようにする:
Options[f] = {normal -> Automatic}CheckArguments[f[1, normal -> 3, hidden -> 2, AspectRatio -> 1], {1, 2}, <|"ExtraOptions" -> {hidden -> 0, Graphics}|>]位置 min+1から max までにある任意の末尾のオプションを,fのオプションとしてではなく位置引数として扱う:
Options[f] = {a -> 1}CheckArguments[f[1, b -> 2], {1, 2}, <|"OptionsMode" -> "Shortest"|>]デフォルトの"OptionsMode""Longest"のときは,未知のオプションに対してメッセージが出される:
CheckArguments[f[1, b -> 2], {1, 2}, <|"OptionsMode" -> "Longest"|>]既知のオプションは,"OptionsMode""Shortest"としても f のオプションとして扱われる:
CheckArguments[f[a -> 2], 0, <|"OptionsMode" -> "Shortest"|>]すべての要素を,f のオプションではなく位置引数として扱う:
CheckArguments[f[a -> 2], 0, <|"OptionsMode" -> None|>]アプリケーション (2)
f[x_, y_] := 2x yそれ以外の数の引数があるときはメッセージが出され,関数は未評価で返される:
f[args___] := Null /; CheckArguments[f[args], 2]f[3, 4]f[2]最大で1個の引数で呼ばれたときはヘルパー関数を呼び出す関数を定義する:
f[args___] := g[args] /; CheckArguments[f[args], {0, 1}]g[] := 5
g[x_] := x + 5f[]f[1]fは,2つ以上の引数で呼ばれると未評価のまま返され,メッセージが出される:
f[1, 2]特性と関係 (8)
CheckArguments[f[…],…]は,f についての無効な入力に対しては,f についてのメッセージを出してFalseを返す:
Options[f] = {a -> 1}CheckArguments[f[1, 2], 3]CheckArguments[f[0, b -> 2], 1]f がオプションを取らないときは,すべての引数が位置引数であると仮定される:
Options[f]CheckArguments[f[0, b -> 2], 1]CheckArguments[…,{min,max}]は,常に最初の min 個の引数を位置引数として扱う:
Options[f] = {a -> 1}以下では,b0はOptionsPattern[]と一致しているにもかかわらず,位置引数として扱われている:
CheckArguments[f[1, b -> 0], {2, 3}]規則b0は,位置引数の後で与えらると未知のオプションとして扱われる:
CheckArguments[f[1, 2, b -> 0], {2, 3}]OptionsPattern[]と一致する末尾の規則は,f にとって既知のオプションの場合はオプションとして扱われる:
Options[f] = {a -> 1}これは,たとえ"OptionsMode""Shortest"が与えられていても真である:
CheckArguments[f[1, a -> 2], {1, 2}, <|"RulesMode" -> "Shortest"|>]オプション指定に未知と既知の両方のオプションが含まれているとメッセージが出される:
Options[f] = {a -> 1}CheckArguments[f[1, {a -> 2, b -> 3}], 1]"OptionsMode""Shortest"とすると,未知と既知のオプションのリストは,可能な場合は位置引数として扱われる:
Options[f] = {a -> 1}CheckArguments[f[1, {a -> 2, b -> 3}], {1, 2}, <|"OptionsMode" -> "Shortest"|>]位置引数の最大数を超える未知のオプションがあってもメッセージが出される:
CheckArguments[f[1, 2, {a -> 2, b -> 3}], {1, 2}, <|"OptionsMode" -> "Shortest"|>]OptionsPattern[]と一致する規則だけが有効なオプション指定である:
Options[f] = {a -> 1}規則12はOptionsPattern[]とは一致しない:
MatchQ[1 -> 2, OptionsPattern[]]CheckArguments[f[1 -> 2], {0, 1}]12は,位置引数の後で与えられた場合は無効なオプション指定として扱われる:
CheckArguments[f[0, 1 -> 2], {0, 1}]CheckArgumentsは,ArgumentsOptionsがFailure[…]を返すときはFalseを返す:
CheckArguments[f[], 1]ArgumentsOptions[f[], 1]考えられる問題 (2)
最少数の引数の位置あるいはその前にある引数はすべて位置引数として扱われる:
CheckArguments[StringCases["str", IgnoreCase -> True, Overlaps -> True], {2, 3}]IgnoreCaseTrueはStringCasesのオプションであるにもかかわらず引数として扱われる:
Options[StringCases]CheckArgumentsはオプション値が正しいかどうかはチェックしない:
CheckArguments[Map[f, x, Heads -> ∞], {2, 3}]Map[f, x, Heads -> ∞]テクニカルノート
関連するガイド
-
▪
- オプション管理 ▪
- パッケージの保護 ▪
- ロバスト性とエラー処理 ▪
- パッケージの開発 ▪
- メッセージ
関連するワークフロー
- オプション付きの関数を定義する
テキスト
Wolfram Research (2020), CheckArguments, Wolfram言語関数, https://reference.wolfram.com/language/ref/CheckArguments.html (2024年に更新).
CMS
Wolfram Language. 2020. "CheckArguments." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/CheckArguments.html.
APA
Wolfram Language. (2020). CheckArguments. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CheckArguments.html
BibTeX
@misc{reference.wolfram_2026_checkarguments, author="Wolfram Research", title="{CheckArguments}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/CheckArguments.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_checkarguments, organization={Wolfram Research}, title={CheckArguments}, year={2024}, url={https://reference.wolfram.com/language/ref/CheckArguments.html}, note=[Accessed: 07-September-2026]}