Matching data

What is the difference between Merge and Entwine.

1 Like

I feel that an image is not as self-explanatory as you are assuming. I can achieve similar result with both if not identical. Perhaps it’s a matter of outputting data, in a native state, that is with no manipulation of the data e.g. Flattening etc.

A lot of data operations start looking alike if you flatten the results…

Let me explain! Both series are starting as two lists or arrays of numbers, with 4 items (numbers) each.
Merge could be interpreted as merging, adding or appending two or more lists and or trees together and thus creating a new list or tree R with 10 items inherited from D1 and D2. R can thus be a list or a more complex data tree. Results depend strongly on grafted or flattened inputs and/or outputs, as well as simple list and/or tree data inputs.

R = [ 0.0, 1.0, 2.0, 3.0, 4.0, 0.0, 1.0, 2.0, 3.0, 4.0 ] at flat path {0}

Entwine on the other hand, always inserts both lists or trees into tree branches. It has an internal flattening or grafting option for the inputs. The inputs are named {0;0} and {0;1}. The 0 or first number stands for the “stem” of the tree. And the second numbers, 0 and 1 represent the branches, where both lists are inserted.

R = [ [ 0.0, 1.0, 2.0, 3.0, 4.0], [0.0, 1.0, 2.0, 3.0, 4.0] ] with [0.0, 1.0, 2.0, 3.0, 4.0] at path {0;0} and [0.0, 1.0, 2.0, 3.0, 4.0] at path {0;1}

Fundamentally, data trees are a complex subject and their creation is not exclusive to the Entwine or Merge.
Entwine just allows you to directly insert data into tree branches, as mentioned above, whereas the most basic function of merge is to, well merge two lists or trees together.

You see, it just depends on what you want to output.

Since you flattened your outputs, the results don’t vary. Flattening a tree is like merging its branch data into a flat list. What you should have seen in the Params Viewer are two branches.

1 Like