"ExprStruct" (データ構造)
"ExprStruct"
評価せずに変更できる式を表す.
詳細
- "ExprStruct"は,Wolfram言語式を評価せずに作業する場合に役立つ.
- "ExprStruct"は,不変の変更を行い,常にその結果を新しいexpr structとして返す.
-
CreateDataStructure["ExprStruct",expr] expr を含む新しい"ExprStruct"を作成する Typed[x,"ExprStruct"] x に"ExprStruct"型を与える - Import形式の"WL"は,"ExprStructs"の要素を使うと"ExprStruct"のデータ構造を作成する.
- Import形式の"WXF"と"MX"は,"ExprStructs"の要素を使うと"ExprStruct"のデータ構造を作成する.
- "ExprStruct"型のデータ構造には,以下の演算が使える.
-
ds["Apply",fun] 式の頭部が fun で置き換えられるexpr structを返す time: O(n) ds["ConstructWith",fun] fun が式に適用される新しいexpr structを返す time: O(1) ds["Depth"] 式の任意部分を指定するのに必要な指標の最大数 time: O(1) ds["Drop",i] i 番目の要素を削除した新しいexpr structを返す time: O(n) ds["Drop",i,j] i から j の間の要素が削除された新しいexpr structを返す time: O(n) ds["Evaluate"] 式を評価した新しいexpr structを返す ds["Fold",fun] fun を式の要素に適用し,結果を累積する time: O(n) ds["Fold",fun] fun を式の要素に適用する.init で始めて結果を累積する time: O(n) ds["Get"] ds がホールドする式を返す time: O(1) ds["Head"] 式の頭部を含む新しいexpr structを返す time: O(1) ds["Insert",x,i] 位置 i に x を挿入した新しいexpr structを返す time: O(n) ds["Length"] 式の中に保存された要素数 time: O(1) ds["Map",fun] fun を式の各要素に適用する新しいexpr structを返す time: O(n) ds["MapImmediateEvaluate",fun] fun を式の各要素に適用し,それを評価する新しいexpr structを返す time: O(n) ds["Part",i] 式の i 番目の部分の新しいexpr structを返す time: O(1) ds["ReplacePart",ix] 式の i 番目の部分を x で置き換えた新しいexpr structを返す time: O(n) ds["Visualization"] ds の可視化を返す time: O(n) - 以下の関数もサポートする.
-
dsi===dsj dsi が dsj に等しい場合はTrue FullForm[ds] ds の完全形 Information[ds] ds についての情報 InputForm[ds] ds の入力形 Normal[ds] ds を通常の式に変換する
例題
すべて開くすべて閉じる例 (2)
新しい"ExprStruct"は,CreateDataStructureを使って作成できる:
スコープ (4)
情報 (1)
新しい"ExprStruct"は,CreateDataStructureを使って作成することができる:
アプリケーション (1)
未評価の式 (1)
"ExprStruct"は,未評価の式で作業を行う場合に役立つ.新しい"ExprStruct"を作成する:
頭部をPlusで置き換える: