符号あり 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演算子をうまくつかうと、イテレータができる。