When you assign a variable to another variable, that new variable points to the same value as the first variable:
;-- see Chapter03/bindings.red:a: [1 2 3] b: a b ;== [1 2 3]
Here, b returns the value in the console, inside a script you would use probe b or print b. We could show this visually as follows:
If the value of a changes, for example, by appending 4, we see that b still has the same value as a, which is evident because it points to the same value storage in memory:
append a 4a ;== [1 2 3 4]b ;== [1 2 3 4]
Here's a visual representation that can help you grasp it better:
It works like that for more complex objects ...