raze of a table (like the .value of a grid widget) makes a dictionary mapping the first column to the second column. For example,
insert k v with "Apple" 11 "Banana" 22 end +----------+----+ | k | v | +----------+----+ | "Apple" | 11 | | "Banana" | 22 | +----------+----+ raze insert k v with "Apple" 11 "Banana" 22 end {"Apple":11,"Banana":22}
the dd.chat[] function will exit if the value corresponding to a key in that map is a number (instead of a string or rtext), so we just need to add another entry to that dictionary.
If you have a dictionary in a variable, you can modify it in-place:
d:raze insert k v with "Apple" 11 "Banana" 22 end {"Apple":11,"Banana":22} d["Cursed Fruit"]:33 {"Apple":11,"Banana":22,"Cursed Fruit":33}
You can also perform the equivalent amendment if the dictionary was yielded by a subexpression, as long as you wrap it in parentheses:
(raze insert k v with "Apple" 11 "Banana" 22 end)["Cursed Fruit"]:33 {"Apple":11,"Banana":22,"Cursed Fruit":33}
You can also construct a dictionary functionally using "dict" and then take the union of some other dictionary and the new dictionary with ",":
(list "Cursed Fruit") dict 33 {"Cursed Fruit":33} (()["Cursed Fruit"]:33) # (yet another way of saying the above) {"Cursed Fruit":33} (raze insert k v with "Apple" 11 "Banana" 22 end),((list "Cursed Fruit") dict 33) {"Apple":11,"Banana":22,"Cursed Fruit":33}
Or you could make a second table and join its rows to the original (also with ",") before razing:
raze insert k v with "Apple" 11 "Banana" 22 end,insert k v with "Cursed Fruit" 33 end {"Apple":11,"Banana":22,"Cursed Fruit":33}
Many ways to peel this particular apple. I strongly recommend using the Listener to experiment with examples like these whenever you find yourself puzzling over a tricky expression; building things up in little pieces helps you verify an idea as you go.
Do those examples make sense?