Учитывая ваше начальное назначение
a: [b: [1 2]]
== [b: [1 2]]
, вы хотите добавить 3 к внутреннему блоку.Вы можете получить внутренний блок с помощью
do "a/b"
== [1 2]
, но вы также можете получить его с помощью
probe a/b
== [1 2]
, что позволяет добавлять эти данные следующим образом.вместо этого:
append a/b 3
== [1 2 3]
probe a
== [b: [1 2 3]]
На языке стиля Алгол это будет что-то вроде a.b = append(a.b, 3)
: a/b
является назначаемой разыменовкой к внутреннему блоку.
ETA:
Если вы хотите уменьшить разыменование, альтернативой вашему do "a/b"
может быть создание функции:
ab: function [][a/b]
== func [][a/b]
append ab 7
== [1 2 7]
(или ab: does [a/b]
.)