FirstCase
FirstCase[{e1,e2,…},pattern]
pattern にマッチする最初の eiを返す.pattern にマッチする要素が見付からない場合はMissing["NotFound"]を返す.
FirstCase[{e1,…},patternrhs]
pattern にマッチする最初の eiに対応する rhs の値を返す.
FirstCase[expr,pattern,default]
pattern にマッチする要素が見付からない場合に default を返す.
FirstCase[expr,pattern,default,levelspec]
levelspec で指定されたレベルに現れるオブジェクトのみを求める.
詳細とオプション
- FirstCaseの第1引数は,頭部Listを持たなくてもよく,連想でもよい.
- FirstCase[expr,pattern:>rhs]は,パターンが見付かった場合にのみ rhs を評価する.
- FirstCase[{e1,e2,…},pattern,default]では,ei がどれもマッチしない場合にのみ default が評価される.
- FirstCase[pattern][expr]はFirstCase[expr,pattern]に等しい.
- FirstCaseは,標準的なレベル指定を使う.
-
n レベル 1 からレベル n まで Infinity レベル 1 からInfinityまで {n} レベル n のみ {n1,n2} レベル n1 からレベル n2まで - FirstCaseにおける levelspec のデフォルト値は{1}である.
- 正のレベル n は,n 個の指標で指定される expr のすべての部分からなる.
- 負のレベル-n は,expr の深さ n のすべての部分からなる.
- レベル-1は,数,記号,下位区分を持たないその他のオブジェクトからなる.
- レベル0は式全体に相当する.
- オプション設定をHeads->Trueとすると,FirstCaseは式の頭部およびその部分を見る.
- FirstCaseは 深さ優先の順序で,根の前に葉を訪れ,expr の部分を横断する.
例題
すべて開くすべて閉じる例 (3)
スコープ (7)
Casesの演算子形を使う:
特性と関係 (4)
FirstCaseは最初にマッチしたものだけを返す:
Casesはマッチしたものをすべて返す:
FirstCaseは,CasesとReplaceの組合せで実装することができる:
FirstCaseは,関数の代りにパターンを使う点を除いて,SelectFirstに似ている:
SelectFirstを使って同じ結果を得る:
考えられる問題 (1)
HoldPatternを使って規則そのものをパターンとして扱う:
テキスト
Wolfram Research (2014), FirstCase, Wolfram言語関数, https://reference.wolfram.com/language/ref/FirstCase.html.
CMS
Wolfram Language. 2014. "FirstCase." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FirstCase.html.
APA
Wolfram Language. (2014). FirstCase. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FirstCase.html