6.2 値

6.2.1. 基本値
6.2.2. タプル
6.2.3. レコード
6.2.4. 配列
6.2.5. バリアント値
6.2.6. 多相バリアント
6.2.7. 関数
6.2.8. オブジェクト

この章では Objective Caml で操作する値の種類を説明します。

6.2.1 基本値

整数

整数値は -230 から 230-1 まで(-1073741824 から 1073741823)の整数です。実装によってはこれより広い範囲をサポートしているかもしれません。例えば 64 ビットプラットフォームでは、整数は -262 から 262-1 までの範囲をサポートしています。

浮動小数点数

浮動小数点数値は浮動小数点数を表す値です。現在の実装では IEEE 754 standard 準拠の倍精度の浮動小数点数になっています。これは仮数部 53 ビット、指数部が -1022 から 1023 までの浮動小数点数です。

文字

文字値は 0 から 255 までの 8 ビット整数として表されます。 0 から 127 までの文字コードは ASCII 標準に従って解釈されます。現在の実装では 128 から 255 までの文字コードは ISO 8859-1 標準に従って解釈されます。

文字列

文字列値は有限長の文字の列です。現在の実装では 224 - 5 文字(16777211 文字)までサポートされています。 64 ビットプラットフォームでは 257 - 9 文字までです。

6.2.2 タプル

値のタプルは (v1, ..., vn) のように書き、v1 から vnn 個組を表します。現在の実装では 222 - 1 要素(4194303 要素)のタプルまでサポートされています。

6.2.3 レコード

レコード値はラベル付けされた値の組です。レコード値は { field1 = v1; ...; fieldn = vn } のように書き、 vn がレコードのフィールド fieldi に対応します(i = 1 ... n)。現在の実装では 222 - 1 要素(4194303 要素)のレコードまでサポートされています。

6.2.4 配列

配列は有限長で、長さを指定できる、同じ型の値の列です 。現在の実装では浮動小数点数の配列以外は 222 - 1 要素 (4194303 要素)の配列までサポートされています(要素が浮動小数点数の場合は 2097151 要素)。 64 ビットプラットフォームでは、全ての配列で長さ 254-1 までです。

6.2.5 バリアント値

バリアント値は定数構成子か、非定数構成子と値を組にしたもののいずれかです。定数構成子は constr のように書き、非定数構成子は constr(v) のように書きます(v は非定数構成子 constr の引数と呼ばれます)。

以下の定数は組み込みの定数構成子のように扱われます。

定数構成子
false真理値の偽
true真理値の真
()unit 値
[]空リスト

現在の実装では 各バリアント型がもつ非定数構成子の数は最大 246 になっています。

6.2.6 多相バリアント

多相バリアントはバリアント値の別の形です。あらかじめ定義されたバリアント型に属さず、特別な型付け規則に従います。多相バリアントも、`tag-name のように書かれる定数構成子か、`tag-name(v) のように書かれる非定数構成子のいずれかです。

6.2.7 関数

関数値は値から値への写像です。

6.2.8 オブジェクト

オブジェクトは隠蔽された内部状態で構成され、インスタンス変数を記録したものとそれにアクセスし変更を加えるメソッド群です。オブジェクトの構成は、それを作ったトップレベルのクラスで記述されます。