符号あり 32-bit
符号あり 64-bit
64-bit IEEEの浮動小数点
符号なし 8-bit
16-bit Unicode。
'c'は、intとして扱われます。一方、"c"はstringとなります。
c : string c = 'C' これはまちがい
で、stringは、UNICODE(UTF-8)で保持されます。
この差は特にlengthに表れます。
'c'は32-bitだけど、"c"はUTF-8なので、1か2か3byteとなります。
以下のようにして、リストを宣言できる。後述のtupleと違って、全部同じ型で なければならない。
stringlist : list of string;
stringlist := list of {"hoge" , "blah"}; # 宣言と同時に値を入れる
リストの先頭に値を付け加える
stringlist : list of string; stringlist = "blah"::stringlist; stringlist = "hoge"::stringlist;
listの先頭を取る
test := hd stringlist;
最初のひとつをのぞいて、のこり全てのリストの要素を返す。
test := tr stringlist; strinlgist = tr stringlist;
hoge: array of int;
hoge := array [] of {"huge" , "huga" , "fuge"}; <-宣言と同時に代入
複数の値を持つ。
先述のlistと違って、違う型をもっていてもいい。
book := ("Inferno Programming with Limbo", "Phillip Stanley-Marbell",
59.99 , 2003);
C言語で言う構造体みたいなもの。
関数も中に入れることができます。
Person : adt
{
year: int;
name : string;
age: fn(me : B) : int;
};
myself : Person;
myself.age = 32;
myself.name = "ほげ";
B.age(me : B) : int;
{
sys = load Sys Sys->PATH;
daytime := load Daytime Daytime->PATH;
return (daytime->year - me.year) ;
} # この実装がちゃんと動くかどうかは未確認
hd演算子とtl演算子をうまくつかうと、イテレータができる。