CompiledExpressionDeclaration[h,n]
コンパイルされたコードでの使用に適した h[x1,x2,…,xn]の形の式の型を表す.
CompiledExpressionDeclaration[h,{t1,t2,…}]
xiの型が tiである h[x1,x2,…,xn]の形の式の型を表す.
CompiledExpressionDeclaration[h"name",…]
宣言された型に"name"と命名する.
CompiledExpressionDeclaration[h"name"::[v1,v2,…],{t1,t2,…}]
パラメータに v1,v2, …というラベルが付いた,パラメータ化された型を表す.
CompiledExpressionDeclaration[h"name"::[v1,v2,…],cond,{t1,t2,…}]
型のパラメータに条件 cond をアサートする.
CompiledExpressionDeclaration[…,test]
コンパイル可能な関数 test がTrueを返す任意の式 expr の型を表す.
CompiledExpressionDeclaration
CompiledExpressionDeclaration[h,n]
コンパイルされたコードでの使用に適した h[x1,x2,…,xn]の形の式の型を表す.
CompiledExpressionDeclaration[h,{t1,t2,…}]
xiの型が tiである h[x1,x2,…,xn]の形の式の型を表す.
CompiledExpressionDeclaration[h"name",…]
宣言された型に"name"と命名する.
CompiledExpressionDeclaration[h"name"::[v1,v2,…],{t1,t2,…}]
パラメータに v1,v2, …というラベルが付いた,パラメータ化された型を表す.
CompiledExpressionDeclaration[h"name"::[v1,v2,…],cond,{t1,t2,…}]
型のパラメータに条件 cond をアサートする.
CompiledExpressionDeclaration[…,test]
コンパイル可能な関数 test がTrueを返す任意の式 expr の型を表す.
詳細
- CompiledExpressionDeclarationは宣言の記号的表現で,そのままでは評価されない.
- CompiledExpressionDeclarationはCompilerEnvironmentAppendToの中,およびFunctionCompileのような関数の第1引数で使うことができる.
- 明示的な型の名前が与えられない場合はSymbolName[h]が使われる.
- 引数型が指定されていると,コンパイルされた式は効率的な製品型として内部的に格納される.
- CompiledExpressionDeclarationは,引数型が指定されると関数を,コンストラクタ,Part,Headを含めて自動的に定義する.
- 引数型が指定されていなければ,コンパイルされた式は"InertExpression"で内部的に格納される.
- 引数型が指定されていなければ,test[expr,ty]を使って与えられた式 expr がコンパイルされた式の型 ty にマッチするかどうかがチェックされる.
例題
すべて開く すべて閉じる例 (2)
foo[_Integer,_Real]の形の式を表す型の宣言を表すが,これは内部的にデータを製品型に格納する:
dec = CompiledExpressionDeclaration[foo, {"Integer64", "Real64"}];インスタンス化して新たな型のオブジェクトを返す関数をコンパイルする:
cf = FunctionCompile[dec, Function[{}, foo[3, 5.6]]]cf[]頭部がfoo,長さ2で内部的に式にデータを格納する式を表す型の宣言を表す:
dec = CompiledExpressionDeclaration[foo, Function[{expr, ty}, Length[expr] === 2]];foo を引数として取りそれを変えずに返す関数をコンパイルする:
cf = FunctionCompile[dec, Function[Typed[arg, "foo"], arg]]cf[foo[1, 2]]cf[bar[1, 2, 3]]スコープ (2)
頭部がfoo,第1引数が任意の数,第2引数がブール値である式を表す型を宣言する:
dec = CompiledExpressionDeclaration[foo -> "foo"::[n], n∈"Numbers", {n, "Boolean"}];cf = FunctionCompile[dec, Function[{}, foo[3.6, True]]]cf[]この関数の戻り型はfooが第1引数に取る数の型でパラメータ化される点に注意のこと.
dec = CompiledExpressionDeclaration[foo, 2];cf = FunctionCompile[dec, Function[{}, foo[3, True]]]cf[]この関数の戻り型は2つの引数型でパラメータ化されるので注意のこと.これは両方の引数に無制限型の変数を持つコンパイルされた式を宣言することと同じである:
cf = FunctionCompile[{
CompiledExpressionDeclaration[foo -> "foo"::[t1, t2], {t1, t2}]
},
Function[{}, foo[3, True]]]cf[]テクニカルノート
テキスト
Wolfram Research (2022), CompiledExpressionDeclaration, Wolfram言語関数, https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.html.
CMS
Wolfram Language. 2022. "CompiledExpressionDeclaration." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.html.
APA
Wolfram Language. (2022). CompiledExpressionDeclaration. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.html
BibTeX
@misc{reference.wolfram_2026_compiledexpressiondeclaration, author="Wolfram Research", title="{CompiledExpressionDeclaration}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.html}", note=[Accessed: 11-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_compiledexpressiondeclaration, organization={Wolfram Research}, title={CompiledExpressionDeclaration}, year={2022}, url={https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.html}, note=[Accessed: 11-September-2026]}