5

コードを読んでいる Ocaml プロジェクトのさまざまな場所で、次の構成要素に遭遇しました。

match something with
  true -> foo
  | false -> bar

一見すると、通常のifステートメントのように機能します。一見すると、それは.. 通常のifステートメントのように機能します。ぱっと見、SOさんにお願いすることにしました。ifこの構文には特別な意味がありますか、それとも特定の場合に重要なステートメントとの微妙な違いがありますか?

4

2 に答える 2

11

はい、if文です。

多くmatchの場合、OCaml コードでは よりも一般的でifあるため、統一性のために使用される場合があります。

于 2009-09-26T12:23:41.560 に答える
2

前の回答には同意しません。if ステートメントの作業を行いますが、それよりも柔軟です。

「パターン マッチングは switch ステートメントですが、10 倍強力です」と誰かが述べた

パターン マッチングの使用方法を説明しているこのチュートリアルをご覧ください リンクはこちら

また、OCAML パターン マッチングを使用すると、構成されたデータを単純なデータ (リスト、タプルなど) に分割できるようになります。

  > Let imply v = 
    match v with 
     | True, x -> x 
     | False, _ -> true;; 

  > Let head = function 
   | [] -> 42 
   | H:: _ -> am;

  > Let rec sum = function 
   | [] -> 0 
   | H:: l -> h + sum l;; 
于 2009-09-28T09:51:19.633 に答える