"ExprStruct" (数据结构)
"ExprStruct"
表示无需计算即可修改的表达式.
更多信息
- "ExprStruct" 可用于在不进行运算的情况下处理 Wolfram 语言表达式.
- "ExprStruct" 进行不可变调整,总是将结果作为新的数据结构返回:
-
CreateDataStructure["ExprStruct",expr] 创建一个包含 expr 的新 "ExprStruct" Typed[x,"ExprStruct"] 将类型 "ExprStruct>" 赋予 x - 用带有 "ExprStruct" 元素的 Import 格式 "WL" 创建 "ExprStructs" 数据结构.
- 用带有 "ExprStruct" 元素的 Import 格式 "WXF" 和 "MX" 创建 "ExprStruct" 数据结构.
- 对于 "ExprStruct" 类型的数据结构,可以使用以下运算:
-
ds["Apply",fun] 返回一个 expr 结构,其中表达式的头部被 fun 替换 时间:O(n) ds["ConstructWith",fun] 返回一个新的 expr 结构,其中 fun 应用于表达式 时间:O(1) ds["Depth"] 指明表达式任何部分的最大索引数 时间:O(1) ds["Drop",i] 返回一个新的 expr 结构,其中删除了第 i 个元素 时间:O(n) ds["Drop",i,j] 返回一个新的 expr 结构,其中删除了 i 和 j 之间的元素 时间:O(n) ds["Evaluate"] 返回计算表达式的新 expr 结构 ds["Fold",fun] 将 fun 应用于表达式的元素,累计结果 时间:O(n) ds["Fold",fun] 将 fun 应用于表达式的元素,从 init 开始,并累计结果 时间:O(n) ds["Get"] 返回 ds 持有的表达式 时间:O(1) ds["Head"] 返回一个包含表达式头部的新 expr 结构 时间:O(1) ds["Insert",x,i] 返回一个新的 expr 结构,其中 x 插入到位置 i 时间:O(n) ds["Length"] 存储在表达式中的元素数量 时间:O(1) ds["Map",fun] 返回一个新的 expr 结构,将 fun 应用于表达式的每个元素 时间:O(n) ds["MapImmediateEvaluate",fun] 返回一个新的 expr 结构,将 fun 应用于表达式的每个元素并对其进行计算 时间:O(n) ds["Part",i] 返回表达式第 i 部分的新 expr 结构 时间:O(1) ds["ReplacePart",ix] 返回一个新的 expr 结构,其中表达式的第 i 部分被替换为 x 时间:O(n) ds["Visualization"] 返回 ds 的可视化表示 时间:O(n) - 还支持以下函数:
-
dsi===dsj 若 dsi 等于 dsj 则为 True FullForm[ds] ds 的完全形式 Information[ds] ds 的信息 InputForm[ds] ds 的输入形式 Normal[ds] 将 ds 转换为一般表达式
范例
打开所有单元关闭所有单元基本范例 (2)
可以使用 CreateDataStructure 创建一个新的 "ExprStruct":
范围 (4)
信息 (1)
可使用 CreateDataStructure 创建新的 "ExprStruct":
应用 (1)
未计算的表达式 (1)
"ExprStruct" 对于处理未计算的表达式很有用. 创建一个新的 "ExprStruct":
用 Plus 替换头部: