型指定

Euslispは、deftype特殊書式を持っていないけれども、 型名は宣言や結果あるいは中身の型の指定を要求する関数の中で 使用される。 例えば、coerce, map, concatenate, make-arrayなど。 一般に、クラス名は(concatenate cons "ab" "cd") = (97 98 99 100)のように 型指定として使用することができる。このとき、Common Lispではconsの代わりに (quote list)を使用する。

Euslispは、数を表現するクラスを持っていないので、数の型はキーワードによって 与える必要がある。 :integer, integer, :int, fixnum, あるいは:fixnumが整数型を表現するために使用され、 :floatあるいはfloatが実数型を表現するために使用される。 make-arrayelement-type引数においては、文字列を作るために :character, character, :bytebyteを 認識する。 defcstruct, sys:peeksys:pokeのような低レベルの関数も、 バイト毎にアクセスするために :character, character, :byteあるいはbyteを認識し、 short word毎にアクセスするために :shortあるいはshortを認識する。 どの場合においても、キーワードはpnameと同じ名前を持つlispパッケージのsymbol を選ぶべきである。



2016-04-05