組とレコード

■組

組とはいくつかのデータ型を並べてひとつのデータとしたものです。
座標の(x, y)のような、複数のデータ型を1つデータとして表す場合に使用します。

●書式
	・書式例
		(データ型1, データ型2, ...., データ型n)

	・具体例
		(0.0, 0.0)
		(* 組が作成されたら「*」で表現する *)
		(* float * float *)

●仕様
	組に使用するデータ型の個数は何個でも問題なく、
	型の種類も同じにする必要はありません。

		例:
			(0.0, 0, "aaa")
			(* float * int * string *)

	組の中に組を作成することも可能です。
		例:
			("Position", (0.0, 0.0))
			(* string * (float * float) *)

●使用方法
	組は他のデータ型のように1つの組みデータに名前を付けることが可能で、
	そのデータを関数の引数などに使用することができます。

		例:
			let addSum (a, b) = a + b

			let pair = (10, 20)
			(* int * int *)

			addSum pair
			(* 30 *)

■レコード

レコードとはデータ型の集まりのことです。
組と違う点はレコードはデータ一つ一つに変数名のような名前(フィールド)を付けれます。
これによって、組のように順番に数値を指定する必要もなく、
フィールドに対して値の設定を行うことが可能となります。

●定義
	・書式例
		type レコード名 = { フィールド1 : 型; フィールド2 = 型; ... }

	・具体例
		type t_Employee = { m_Name : string; m_Salary : int }

●宣言
	・書式例:
		let 変数名 = { フィールド = 値; フィールド = 値; }

	・具体例:
		let employee = { m_Name = "yamada"; m_Salary = 220000 }

●使用例
	レコードのフィールドの値の参照は「レコード名.フィールド」で可能となっており、
	レコード自体を関数の引数として使用することも可能です。

	type t_Employee = { m_Name : string; m_Salary : int }
	let employee = { m_Name = "yamada"; m_Salary = 220000 }

	let evaluation employee = 
		if employee.m_Salary > 400000 then
			"good"
		else
			"sad"