Я не совсем уверен, насколько глубоко вы хотите, чтобы конкатенация списка составляла go (обратите внимание, что concat
на самом деле предшествует Tcl 7.0 , так что вы, безусловно, имеете его!), Но вот как убрать один уровень списка, используя код, написанный для работы с 8.4:
proc concat_one_level {input_list} {
set accum_list {}
foreach item $input_list {
eval [linsert $item 0 lappend accum_list]
# From 8.5 onwards, we'd use this instead:
# lappend accum_list {*}$item
}
return $accum_list
}
Интерактивное тестирование (в 8.5; у меня больше нет установки 8.4):
% puts $m
{{bi 1/7 1/8}} {{uni 1/6}}
% concat_one_level $m
{bi 1/7 1/8} {uni 1/6}
% concat_one_level [concat_one_level $m]
bi 1/7 1/8 uni 1/6