ArgumentsOptions

ArgumentsOptions[f[args],n]

fargsn 個の位置引数のリストとそれに続く有効なオプションのリストに分離しようとする.

ArgumentsOptions[f[args],{min,max}]

位置引数の数が min から max までであるように求める.

ArgumentsOptions[f[args],spec,assoc]

連想 assoc の情報に基づいて動作を変更する.

詳細

  • ArgumentsOptionsは,f[]の位置引数の数が違っていたり未知のオプションや無効なオプションが指定されたりする場合は f についての適切なメッセージを出してFailureオブジェクトを返す.
  • 連想 assoc には次のキーが使える.
  • "ExtraOptions"{}f の既知のオプションとして扱われる追加的なオプション
    "OptionsMode""Longest"任意の位置引数 args をどのように解釈するか
    "Head"List位置引数とオプションリストのラッパー
  • "ExtraOptions"に与えられる追加的なオプションは,規則 nameval として,あるいはOptions[func]と等価なシンボル func として指定できる.
  • ArgumentsOptionsは,f について指定されたすべてのオプションに有効な名前があるかどうかをチェックする.
  • "OptionsMode"には,次の値を使うことができる. »
  • "Longest"OptionsPattern[]にマッチする args の末尾の要素を f のオプションとして扱う
    "Shortest"既知の1つあるいは複数のオプション以外のものはすべて位置引数として扱う
    Noneすべての要素を位置引数として扱う
  • たとえ"OptionsMode""Shortest"のときでも,位置 max を超えた未知のオプションはメッセージを生成する. »
  • ArgumentsOptionsは属性HoldFirstを有する.

例題

すべて開くすべて閉じる

  (1)

関数fのオプションを宣言する:

fの引数を厳密に1つの位置引数とオプションに分離する:

fの引数が無効の場合に適切なメッセージが出るようにする:

スコープ  (7)

1個から3個の位置引数を取る関数の位置引数とオプションを分離する:

少なくとも2つの位置引数が必要である:

f1個の引数で呼ぶのは無効である:

厳密に3個の位置引数が必要である:

Options[f]には現れない「隠れた」オプションが使える:

オプションa0fの既知のオプションではない:

hidden」という名前のオプションとGraphics の任意のオプションが設定できる:

位置 min+1から max までの未知の末尾のオプションを,f のオプションとしてではなく位置引数として扱う:

規則b1は位置引数として扱われる:

デフォルトの"OptionsMode""Longest"では,未知のオプションに対してメッセージが出される:

"OptionsMode""Shortest"のとき,既知のオプションは常に f のオプションとして扱われる:

すべての要素を f のオプションではなく位置引数として扱う:

引数を評価せずに分離する:

アプリケーション  (2)

1つまたは2つの位置引数で呼ばれた場合にヘルパー関数を呼び出す関数を定義する:

1つまたは2つの位置引数で呼ばれると,ヘルパー関数が呼び出される:

3つ以上の位置引数で呼ばれると,fは未評価で返され,メッセージが出される:

"OptionsMode""Shortest"を使って末尾の空リストを位置引数として扱うようにする:

特性と関係  (10)

ArgumentsOptions[f[],]はメッセージを出し, f の不正な入力に対してはFailure を返す:

f がオプションを取らない場合は,すべての引数が位置引数であると仮定される:

オプションは,入力式の中でどのように現れるかとは無関係に,常に平らなリストとして返される:

ArgumentsOptions[,{min,max}]は,常に最初の min 個の引数を位置引数として扱う:

a0は,以下では OptionsPattern[]と一致するにもかかわらず,位置引数として扱われている:

規則 a0は,位置引数の後ろで与えられた場合はオプションとして扱われる:

オプションを集めるときは末尾のオプションだけが考慮される:

OptionsPattern[]と一致する末尾の規則は,f の既知のオプションである場合はオプションとして扱われる:

たとえ"OptionsMode""Shortest"が与えられていても上記は真である:

既知と未知両方のオプションを含むオプション指定をするとメッセージが出る:

"OptionsMode""Shortest"では,既知と未知のオプションを含むリストが,可能な場合は位置引数として扱われる:

位置引数の上限を超える未知のオプションでも,常にメッセージが生成される:

OptionsPattern[]と一致する規則だけが有効なオプション指定である:

規則12OptionsPattern[]とは一致しない:

したがって,これは位置引数として扱われる:

12は,位置引数の後で与えられた場合は無効なオプション指定として扱われる:

CheckArgumentsFalseを返す場合は,ArgumentsOptionsFailure[]返す:

考えられる問題  (3)

f がオプションを取る場合は,{}OptionsPattern[]と一致するので末尾の空リストはデフォルトで無視される:

"OptionsMode""Shortest"を使って末尾の空リストが位置引数として扱われるようにする:

最小引数の位置あるいはその前にある引数はすべて,位置引数であるとみなされる:

ArgumentsOptionsは,オプション値が正しいかどうかのチェックはしない:

InfinityHeadsの有効な値ではない:

Wolfram Research (2020), ArgumentsOptions, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArgumentsOptions.html (2024年に更新).

テキスト

Wolfram Research (2020), ArgumentsOptions, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArgumentsOptions.html (2024年に更新).

CMS

Wolfram Language. 2020. "ArgumentsOptions." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/ArgumentsOptions.html.

APA

Wolfram Language. (2020). ArgumentsOptions. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArgumentsOptions.html

BibTeX

@misc{reference.wolfram_2024_argumentsoptions, author="Wolfram Research", title="{ArgumentsOptions}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/ArgumentsOptions.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_argumentsoptions, organization={Wolfram Research}, title={ArgumentsOptions}, year={2024}, url={https://reference.wolfram.com/language/ref/ArgumentsOptions.html}, note=[Accessed: 22-November-2024 ]}