Fsharp-pattern-matching
提供:Dev Guides
F#-パターンマッチング
パターンマッチングを使用すると、「データを1つまたは複数の論理構造と比較したり、データを構成要素に分解したり、さまざまな方法でデータから情報を抽出したりする」ことができます。
言い換えると、一連の条件に対してデータをテストし、満たされた条件に基づいていくつかの計算を実行する、より柔軟で強力な方法を提供します。
概念的には、一連のif…thenステートメントのようなものです。
構文
高レベルの用語では、パターンマッチングはF#でこの構文に従います-
どこで、
- 各|シンボルは条件を定義します。
- →記号は、「条件が真の場合、この値を返す…」を意味します。
- _記号はデフォルトパターンを提供します。つまり、ワイルドカードのような他のすべてのものと一致します。
例1
次の例では、パターン一致構文を使用してフィボナッチ数を計算します-
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
同じ値を返す複数の条件を連結することもできます。 たとえば-
例2
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
パターンマッチング関数
F#では、 function キーワードを使用してパターンマッチング関数を作成できます-
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
パターンへのフィルターまたはガードの追加
例1
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
例2
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
タプルとのパターンマッチング
次の例は、タプルとのパターンマッチングを示しています-
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-
レコードとのパターンマッチング
次の例は、レコードとのパターンマッチングを示しています-
あなたがプログラムをコンパイルして実行すると、次の出力が得られます-