[Pkg-tcltk-devel] Bug#993388: Bug#993388: tcl8.6: nested dicts: with lappend you can duplicate and than remove intermediate values
Sergei Golovan
sgolovan at gmail.com
Tue Aug 31 17:29:53 BST 2021
Hi Davide,
As far as I can see, there's nothing wrong with Tcl here. You just
treat a list as a dict, hence the confusion. See this simpler example:
% set M {A B C D C {1 2}}
A B C D C {1 2}
Here, $M contains a list (actually, a string which can be interpreted
as a list). But we can try to interpret it as a dict:
% dict lappend M C 3
A B C {1 2 3}
Here, $M is reinterpreted as a dict, with odd items A, C, C as its
keys, and even items B, D, {1 2} as values. The problem is that there
is the duplicate key C, so Tcl had to drop one of its values (the last
one overwritten the first one upon creation of the dict). After that,
3 was appended to the list {1 2}.
Cheers!
--
Sergei Golovan
More information about the Pkg-tcltk-devel
mailing list