6.2
Values
この章では Objective Caml で処理される値の種類を説明します。
6.2.1
Base values
Integer numbers
整数値は -2
30
から 2
30
-1 まで (-1073741824 から 1073741823) の整数です。実装によってはこれより広い範囲をサポートしているかもしれません。例えば 64 ビットプラットフォームでは、整数は -2
62
から 2
62
-1 までの範囲をサポートしています。
Floating-point numbers
浮動小数点小数値は浮動小数点小数を表す値です。現在の実装では IEEE 754 standard 準拠の double 精度の浮動小数点小数になっています。これは 53 ビットの仮数部で、指数部が -1022 から 1023 までの浮動小数点小数です。
Characters
文字値は 0 から 255 までの 8 ビット整数を表します。0 から 127 までの文字コードは ASCII 標準に従って解釈されます。現在の実装では 128 から 255 までの文字コードは ISO 8859-1 標準に従って解釈されます。
Character strings
文字列値は有限長の文字列です。現在の実装では 2
24
- 6 文字 (16777210 文字) までサポートされています。
6.2.2
Tuples
値の tuple は (
v
1
, ...,
v
n
) のように書き、
v
1
から
v
n
までの
n
-tuple を表します。現在の実装では 2
22
- 1 要素 (4194303 要素) の tuple までサポートされています。
6.2.3
Records
record 値はラベル付けされた tuple です。record 値は {
field
1
=
v
1
; ...;
field
n
=
v
n
} のように書き、
v
i
が record field
field
i
に対応します (
i
= 1 ...
n
) 。現在の実装では 2
22
- 1 要素 (4194303 要素) の record までサポートされています。
6.2.4
Arrays
配列は有限で、同じ型の値の列です (長さは指定できます) 。現在の実装では 2
22
- 1 要素 (4194303 要素) の配列までサポートされています。
6.2.5
Variant values
variant 値は定コンストラクタ (constant constructor) か、不定コンストラクタ (non-constant constructor) と値の組のいずれかです。定コンストラクタは
cconstr
のように書き、不定コンストラクタは
ncconstr
(
v
) のように書きます (
v
は不定コンストラクタ
ncconstr
の引数と呼ばれます) 。
以下の定数は組み込みの定コンストラクタのように扱われます。
定数
コンストラクタ
false
真理値の偽
true
真理値の正
()
unit の値
[]
空リスト
現在の実装ではバリアントで区別されるコンストラクタの数は最大 249 になっています。
6.2.6
Polymorphic variants
多相バリアントはバリアント値の別の形です。あらかじめ定義されたバリアント型に属さず、特別な型付け規則に従います。多相バリアントも、
`
tag-name
のように書かれる定コンストラクタか、
`
tag-name
(
v
) のように書かれる不定コンストラクタのいずれかです。
6.2.7
Functions
関数値は値から値への写像です。
6.2.8
Objects
object は隠蔽された内部状態で構成されます。それはインスタンス変数のレコードとそれにアクセスし変更を加えるメソッド群です。object の構成は、それを作ったトップレベルのクラスに記されます。