同義語 構造体=レコード。
これは便利だ。構造体型は帰納的型だから、データは帰納的データ。帰納的データ(=帰納的型のデータ)は定義によりリテラル表示を持つ。リテラル表示のコンビニエンスとしていくつかの記法がサポートされている。
- 名前付きレコード記法: {名前 . フィールド並び} フィールド並びは割り当てのカンマ区切り並び
- レコードアップデート記法: {アップデート部分 .. 元レコード} アップデート部分は割り当てのカンマ区切り並び
- デフォルト値: 定義時にフィールドデフォルト値があれば、書かなくてもよい。
- 汎用〈無名〉{レコード | タプル}記法: 順番でフィールドを識別する。〈 ... 〉便利! 並べるのは値だけ。
関数の引数にレコード型を使えば、名前引数渡し、デフォルト引数、典型引数、汎用タプル記法が使える。
- foo {a := 1, b:= 2}
- foo {a := 1} -- bはデフォルト値
- foo {b := 3 ..foo_arg } -- foo_arg は典型引数
- foo 〈1, 2〉