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
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)
FirstCase[{a, b, c, 5, 6, 7}, _Integer]FirstCase[{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}, Except[_Integer]]FirstCase[{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}, f[x_] :> x]Associationから要素を拾う:
FirstCase[<|1 -> "a", 2 -> "b", 3 -> c, 4 -> d|>, _Symbol]スコープ (7)
Casesの演算子形を使う:
FirstCase[_Integer]@{f[a], 2, 3, a}FirstCase[{{1, 2}, {2}, {3, 4, 1}, {5, 4}, {3, 3}}, {_, _}]FirstCase[{{1, 2}, {2}, {3, 4, 1}, {5, 4}, {3, 3}}, {a_, b_} -> a + b]FirstCase[{1, 0, 2, 0, 3, 5, 6, 7, 0, 0, 0}, Except[0]]FirstCase[{f[{}], f[{a}], g[{a, b}], f[{a, b, c}]}, g[x_] :> Length[x]]FirstCase[{1, 2, 3}, _ ? StringQ, "NoStrings"]FirstCase[{{1, 4, a, 0}, {b, 3, 2, 2}, {c, c, 5, 5}}, _Symbol, Missing[], {2}]FirstCase[<|1 -> 5, 2 -> <|3 -> 1, a -> b|>|>, _Symbol, Missing[], Infinity]オプション (1)
特性と関係 (4)
FirstCase[{None, "A", "B"}, _String, Abort[]]FirstCase[{None, None, None}, _String, Abort[]]FirstCaseは最初にマッチしたものだけを返す:
FirstCase[{None, "A", "B"}, "A" | "B"]Casesはマッチしたものをすべて返す:
Cases[{None, "A", "B"}, "A" | "B"]FirstCaseは,CasesとReplaceの組合せで実装することができる:
FirstCase[{1, 2, a, Sqrt[2], Pi, E}, _Symbol]
FirstCase[{1, 2, a, Sqrt[2], Pi, E}, _StringQ]Replace[Cases[{1, 2, a, Sqrt[2], Pi, E}, _Symbol], {{} :> Missing["NotFound"], l_ :> First[l]}]
Replace[Cases[{1, 2, a, Sqrt[2], Pi, E}, _StringQ], {{} :> Missing["NotFound"], l_ :> First[l]}]FirstCaseは,関数の代りにパターンを使う点を除いて,SelectFirstに似ている:
list = RandomInteger[{3, 7}, {10, 2}]smallQ = Total[#] < 10&;FirstCase[list, x_ /; smallQ[x]]SelectFirstを使って同じ結果を得る:
SelectFirst[list, smallQ]考えられる問題 (1)
FirstCase[{1, b -> Automatic, c -> 3}, _ -> Automatic]HoldPatternを使って規則そのものをパターンとして扱う:
FirstCase[{1, b -> Automatic, c -> 3}, HoldPattern[_ -> Automatic]]関連するガイド
-
▪
- リストの要素 ▪
- 関数の合成と演算子形式
テキスト
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
BibTeX
@misc{reference.wolfram_2026_firstcase, author="Wolfram Research", title="{FirstCase}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FirstCase.html}", note=[Accessed: 07-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_firstcase, organization={Wolfram Research}, title={FirstCase}, year={2014}, url={https://reference.wolfram.com/language/ref/FirstCase.html}, note=[Accessed: 07-October-2026]}