TypeOf

TypeOf[expr]

expr の型を与える.評価はしない.

TypeOf[expr,Typed[x,ty]]

expr 内の x のインスタンスの型は ty であると仮定する.

TypeOf[expr,{Typed[x1,ty1],Typed[x2,ty2],}]

xiの型が tyiであると仮定する.

TypeOf[expr,decls]

宣言 decls を使う.

詳細とオプション

  • TypeOfは,解釈されたプログラムとコンパイルされたプログラムの両方で使うことができる.
  • TypeOfは,Wolfram Compilerの型推論システムを使用する.
  • TypeOfは,Wolfram Compilerでコンパイル可能な式と型しか受け付けない.
  • TypeOfは,コンパイルが機能するかどうかを簡単にチェックするために解釈されたコードで使用することができる.
  • TypeOfは,コードの一部の型を判定するためにコンパイルされたコードで使うことができる.
  • TypeOfは,TypeEvaluateと一緒に使って関数宣言の型を指定することができる.
  • TypeOfは,TypedFunctionDeclarationTypeDeclarationのような宣言指定の両方を取ることができる.

例題

すべて開くすべて閉じる

  (6)

関数の型を求める:

TypeOfは,関数の型を判定し,コンパイルが機能するかどうかを示すだけなので,便利である.

式の型を求める:

部分式の型を指定するだけで式の型を求める:

FunctionDeclarationを使って関数の型を求める:

TypeOfを含むプログラムをコンパイルする:

TypeOf は,宣言時には引数の型が未知であるので,ForAllTypeで書かれた多型宣言で役に立つ:

TypeOfTypeEvaluateと一緒に使って宣言の型を判定することができる:

スコープ  (2)

配列を使ってプログラムの型を求める:

TypeOfは,評価されたコードの場合と同様にコンパイルされたコード中のそれ自身の引数を評価しない:

アプリケーション  (1)

異なる型を掛けたときの結果を求める:

特性と関係  (3)

TypeOfは入力の型をこれを評価せずに推測する:

TypeOfは,FunctionCompileによって生成されたCompiledCodeFunctionの戻り型をはるかに速く与える:

TypeOfがコンパイルできない場合は,通常,エラーのソースを示すボタンを含むメッセージが出される:

ソースボタンをクリックすると,通常,エラーの特定に役立つユーザインターフェースが開く:

考えられる問題  (3)

TypeOfはコンパイルされたプログラムの型しか推測できない:

TypeOf does not evaluate its argument, which leads to unintended consequences:

The argument of TypeOf may need explicit evaluation:

TypeOfは,その主引数の型しか計算しないので,宣言内のエラーは見付けない:

FunctionCompileは完全なコンパイルを行うので宣言内のエラーも見付けられる:

Wolfram Research (2022), TypeOf, Wolfram言語関数, https://reference.wolfram.com/language/ref/TypeOf.html.

テキスト

Wolfram Research (2022), TypeOf, Wolfram言語関数, https://reference.wolfram.com/language/ref/TypeOf.html.

CMS

Wolfram Language. 2022. "TypeOf." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TypeOf.html.

APA

Wolfram Language. (2022). TypeOf. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TypeOf.html

BibTeX

@misc{reference.wolfram_2025_typeof, author="Wolfram Research", title="{TypeOf}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/TypeOf.html}", note=[Accessed: 04-June-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_typeof, organization={Wolfram Research}, title={TypeOf}, year={2022}, url={https://reference.wolfram.com/language/ref/TypeOf.html}, note=[Accessed: 04-June-2025 ]}