"InertExpression" (编译类型)
"InertExpression" (编译类型)
"InertExpression"
代表一个不自动运算的惰性表达式.
更多信息
- "InertExpression" 可用在 Typed 及相关构造中,用来指定类型.
- "InertExpression" 对象是由内存自动管理的.
- "InertExpression" 对象的内部表示与 Wolfram 语言表达式相同.
- "InertExpression" 对象是惰性的,只有在调用 InertEvaluate 时才会进行运算.
函数构造
- InertExpression[expr] 根据从常数 expr 构造一个惰性表达式对象.
- head[arg1,arg2,…] 构造一个惰性表达式 head[arg1,arg2,…],其中 head 是一个惰性表达式,并且 arg1 等被转换为惰性表达式.
- Construct[head,arg1,arg2,…] 构造一个惰性表达式 head[arg1,arg2,…],其中 head 是惰性表达式,arg1 等参数也会被转换为惰性表达式.
属性
- InertEvaluate 运算惰性表达式.
转换
- 当在运算得到和编译得到的代码之间传递时,惰性表达式会与表达式相互自动转换. »
表达式
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (4)
惰性表达式会自动转换为表达式,并在从编译后的代码返回时进行运算:
cf = FunctionCompile[Function[{}, InertExpression[Echo["bam!"];2 + 2]]]cf[]cf = FunctionCompile[Function[{Typed[head, "InertExpression"]},
head[1, 2, 4]]]cf[f]构建一个惰性表达式,在从编译代码返回之前用 Hold 对其进行封装:
cf = FunctionCompile[Function[{},
InertExpression[Hold][InertExpression[Total][{1, 2, 3}]
]]]cf[]也可以使用 Construct 命令:
cf = FunctionCompile[Function[{},
Construct[InertExpression[Hold], Construct[InertExpression[Total], InertExpression[{1, 2, 3}]]]
]]cf[]属性和关系 (1)
惰性表达式可以用 InertEvaluate 进行运算:
cf = FunctionCompile[Function[{}, InertEvaluate[InertExpression[2 + 2]]]]技术笔记
历史
2022年引入 (13.1)