2016-09-21 6 views
2

Rascalでは、複合型(リストやマップなどの組み込みの基本型と型コンストラクタで構築)の名前をどうやって導入するのですか? など。私が代わりにあなたがaliasを使用することができますtypedefRascal(a la typedef)のコンポジット型に名前をつける

typedef IntList = list[int]; 
typedef StrToIntList = map[str,IntList]; 
StrToIntList mymap =(); 

答えて

2

ような何かをしたいと思います。例えば:あなたもような何かができるよう

rascal>alias IntList = list[int]; 
ok 
rascal>alias StrToIntList = map[str,IntList]; 
ok 
rascal>StrToIntList mymap =(); 
StrToIntList:() 

あなたは、だけでなく、既存の基本的なタイプに代替名を与えることaliasを使用することができます。

alias ID = int; 

をそして、必要な場合は、型パラメータを含むことができ、 aliasタイプ等価だけでなくサブタイプを導入すること

alias Graph[&T] = rel[&T,&T]; 

注:これ任意のタイプ上のグラフは以下のように定義することができます。したがって、エイリアスを引数型として受け入れる関数では、エイリアスまたはそのサブタイプのいずれかの値を指定することもできます。

関連する問題