Verse は、型に別の名前を与えて同じ基本型を参照することをサポートしています。これは 型エイリアス として知られています。定数 の 初期化 と基本的には同じことなので構文も似ています。値 の代わりに型 を使います。
たとえば、エイリアスに float
を与えるには、以下の 構文 を使用することができます。
number := float
これを使用して短縮できる型シグネチャもあります。たとえば、以下のコードの代わりに
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
以下のようにタプルにエイリアスを導入します。
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
これは特に関数型との組み合わせに便利です。その例を以下に示します。
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y :X, F[Y]):
Y
現在、Verse は パラメトリック型 エイリアスをサポートしていないことに留意してください。
たとえば、
predicate(t : type) := type{_(:t)<transacts><decides> : void}
はサポートされていません。