リスト

パターンマッチとリストは重要なのだった。 C++ の for_each みたいなのを書くとして、

let rec for_each l f =
  match l with
  | [] -> ()
  | h :: t ->
      f h;
      for_each t f

let _ =
  for_each ["hoge"; "hage"; "hige"] print_endline

なんかこんなん。パターンマッチはハイパー switch なのでなんか色々できるわけです。空リストが引数の場合はなんもしないというのが以下の部分。

  | [] -> ()

次の h :: t にマッチするとーって部分はなんか、 h は head で t は tail ですよつまり。 :: は例えば int と [int] を連結するような表記で、まぁカラリストじゃない場合は h に先頭要素が入って、残りのリストが t に入るようになってるとかもう説明だるいこんな丁寧に書くんじゃなくて自分メモのつもりだったのに。

  | h :: t ->
      f h;
      for_each t f

あとさっき for_each にまた rec 書き忘れた。めんどい。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h