*** 数値 [#b442fab0]
- 数値は整数と浮動小数が使用できる。
-- 整数は,通常の表記に加えて以下の特殊表記が使用できる。
--- $文字:文字のASCII値,もしくはUnicodeのコードポイント値
--- 基数#数値:10進数以外の表記を使いたい場合
*** アトム [#p9eb6279]
- 英小文字から始まるか,またはシングルクォートで囲まれた文字列はアトム。
- アトムはその文字列自身を値に持つ(?)定数。
*** タプル [#dea9617a]
- カンマで区切られた値を中括弧(波括弧)で囲む({1,2,3,4})とタプル。
-- 値の数は1個でも0個でも良い。0個なら空のタプル。
- タプルは1度定義したら,後からサイズを変更できない。
*** リスト [#dd4994d4]
- カンマで区切られた値を大括弧で囲む([1,2,3,4])とリスト。
-- 値の数は1個でも0個でも良い。0個なら空のリスト。
- リストは,後からサイズを変更できる。
-- 厳密には,リストは[1| [2| [3| []]]]と入れ子になっているだけ。そのため,サイズを変更すると言うよりも,新しい値を先頭に新たな入れ子にする,もしくは入れ子になっている一部分を取り出す,と言う方が正確。
*** 文字列 [#k0494b7b]
- Erlangは,文字および文字列用の型を持たない。
-- ダブルクォートで囲まれた文字列が「文字列」の様に扱われるが,実体は各文字のASCII値,もしくはUnicodeのコードポイント値のリスト,つまり数値のリスト。
*** ブーリアン [#i7c7730b]
- Erlangは,真偽値用の型を持たない。
-- アトム true および false が,便宜上真偽値の様に扱われる。実際に比較演算子は,結果としてこれらのアトムを返す。
*** ビット列およびバイナリ [#r44bc864]
TBD
*** 関数 [#scf32ed2]
- 無名関数を定義し,変数に束縛できる。
-- 無名関数は fun('''引数''') -> '''関数本体''' end. で定義する。
- 関数は,他の関数に引数として与える事ができる。
*** レコード [#e22ba9c0]
TBD
*** PID [#a9a34f20]
- プロセスの識別子を表す値。
- spawn系の各関数の返り値として,プロセスが作成された時に生成される。
-- リテラルは無く,関数の返り値としてのみ取得できる。
- Erlang Shellでは <'''数値'''.'''数値'''.'''数値'''> の形式で出力される。
-- 個々の数値に深い意味は無い?