プログラミング言語SML#解説 4.1.0版
19

19.19 関数式 fn match

matchが表現する関数型とクロージャを生成する. matchは,データ構成子を含むパターンと,そのパターンにマッチし する引数が与えられた時評価される式の組である.

  pat1 => exp1
|
|
patn => expn

各パターンと式の組pati => expiに対し て,patiの型tyiを求め,パターンの中の変数の型 を現在の型環境に加えた型環境の下でexpiの型 tyiを求め,関数型tyi -> tyiを得る. これら関数型をすべて単一化して得られる関数型ty -> tyがこの関数式の型である. 関数式の値は,現在の値の環境とこの関数式の組みからなる関数クロー ジャである.