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

19.19 関数式 fn ⟨match⟩

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

  ⟨pat1⟩ => ⟨exp1⟩
| ⋯
| ⟨
patn⟩ => ⟨expn⟩

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