OptionValue
OptionValue[name]
OptionsPatternでマッチしたオプションの name の値を与える.
OptionValue[f,name]
頭部 f に関連付けられたオプションの name の値を与える.
OptionValue[f,opts,name]
規則 opts の明示的なリストからオプション値を抽出する.
OptionValue[…,{name1,name2,…}]
複数のオプション値を取り出す.
詳細
- OptionValue[name]はOptionValue[f,name]と等価である.ただし,f はOptionValue[name]が現れる変換規則の左辺の頭部である.
- OptionValue[f,name]とOptionValue[name]は,f の引数として現れる最初のOptionsPatternオブジェクトからの値を使う.
- OptionValue[f,opts,name]では,明示的なリスト opts と f からのデフォルトのみが考慮される.
- OptionValue[f,opts,name]の f は,シンボル,規則,あるいはデフォルト値を指定するシンボルと規則のリストでよい.f 中の各シンボル s はOptions[s]に等しい.同じオプション名が複数回指定された場合は,最初の指定がデフォルトを決定する.
- OptionValue[f,opts,name,Hold]は,Holdで囲まれたオプション値を返す.
- OptionValue[Automatic,Automatic,name,Hold]は,オプション値がHoldで囲まれて返される点を除いてOptionValue[name]と等価である.
- OptionValueは,オプション名を比較するときはコンテキストを無視し,シンボル s と文字列SymbolName[s]を互換的に扱う.
例題
すべて開くすべて閉じるスコープ (4)
複数のOptionsPattern構造を使って変換規則を定義する:
OptionValue[a]は外側の頭部なのでOptionValue[f,a]として扱われる:
OptionValueは特定のオプションが指定された箇所を探知する:
第4引数でHoldを使い,RuleDelayedを使ってオプションの未評価の形を返す:
Holdがないと,$Assumptionsの現行値が返される:
アプリケーション (2)
特性と関係 (4)
OptionValueは要求された全オプションがデフォルトで現れるかどうかをチェックする:
単純な例では,OptionValue[f,opts,name]は name/.opts/.Options[f]に類似している:
しかし,OptionValueは追加的な正規化を行って確実に規則が正しく適用されるようにする:
考えられる問題 (1)
OptionsPatternが別の関数内だけに現れるところで変換規則を定義する:
OptionsPatternが f の引数ではないのでOptionValue[a]は使えない:
テキスト
Wolfram Research (2007), OptionValue, Wolfram言語関数, https://reference.wolfram.com/language/ref/OptionValue.html.
CMS
Wolfram Language. 2007. "OptionValue." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/OptionValue.html.
APA
Wolfram Language. (2007). OptionValue. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/OptionValue.html