このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ολ計算:レコード演算

x, yがレコード、n, mが名前のとき、

  • x >>+ y は、左優先のマージ
  • x +<< y は、右優先のマージ
  • x +++ y は、排他的公平なマージ、エラーの可能性あり
  • !x は、xのレイフィケーション、結果はインスタンスである。フィールドの型が値ロールで解釈される。
  • x.n でフィールドを参照できる。
  • x.{n := m} で特定フィールドを別な名前でコピーしたレコードを返す。
  • x.{n1 := m1; n2 := m2} も使える。
  • x.{n := 項} も使える。
  • x.^(n m) で特定の名前を除外したレコードを返す。
  • 無名フィールドは、関数の戻り値の名前に使える(横道に逸れた)。

フィールドを型宣言フィールドと値割り当てフィールドに分ける。型宣言フィールドのみなら、型コンテキストになる。全て値割り当てフィールドならインスタンスと呼ぶ。