ForAllType
ForAllType[x,type]
x でパラメータ化された型を表す.
ForAllType[x,cond,type]
cond を満足する型を表す.
ForAllType[{x1,x1,…},cond,type]
複数のパラメータを持つ型を表す.
詳細
- ForAllTypeはそのままでは評価されないが,Typed, FunctionDeclaration等の型を取る関数の中で使うことができる.
- ForAllTypeは多相関数の型の指定に使われる.
- 次は,cond の可能な形である.
-
Element[x,"absType"] x は抽象型に属すると断言する TypeEvaluate[…] 任意の関数を実行する Element[x,{ty1,ty2,…}] x が与えられた型の一つであると断言する - cond はElement[xi,"absType"]の形を取る.ここで,"absType"は抽象型である. »
- cond はElement[xi,{ty1,ty2,…}]の形を取る.ここで,tyiは具象型である. »
- TypeEvaluateは cond で使うことができる. »
- cond は条件のリストとして与えることができる.
例題
すべて開くすべて閉じる例 (1)
スコープ (7)
任意のパック配列を取って任意のより高階の配列を返す関数の型を表す:
この型の関数を宣言し,具体的な例に対してこの関数を呼び出す:
この関数を階数2のパックアレーに適用するプログラムをコンパイルする:
次は.同じ関数に対する2つの宣言で,一つは"Integers"についてのもの,もう一方は"UnsignedIntegers"についてのものである:
一致する唯一の制約は"Integers"についてのものである:
以下では,両方の制約条件が一致し,("UnsignedMachineIntegers"についての)一番限定度が高い宣言が使われる:
CompilerInformationは,"Integer64"のような型が"Integers"のような抽象型にどのように作用するかを見る際に役に立つ.
この宣言は,"Integer64"と"Real64"の両方に適用できる:
代替物のリストがある制約条件には,変数がある型を使うことができる:
抽象型を宣言する手間をかけずに宣言を行うことは非常に便利である.これらの宣言は,使用されている型が完全に分かっていない場合でも,その型の形状を示すのに役に立つ.
テキスト
Wolfram Research (2022), ForAllType, Wolfram言語関数, https://reference.wolfram.com/language/ref/ForAllType.html.
CMS
Wolfram Language. 2022. "ForAllType." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ForAllType.html.
APA
Wolfram Language. (2022). ForAllType. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ForAllType.html