У меня возникли некоторые проблемы с пониманием использования uplevel в TCL. Я читаю Практическое программирование Брента Уэлча в TCL и Tk, и на верхнем уровне есть пример, который я не могу понять. Вот он:
proc lassign {valueList args} {
if {[llength $args] == 0} {
error "wrong # args:lassign list varname ?varname...?"
}
if {[llength $valueList] == 0} {
#Ensure one trip through the foreach loop
set valueList [List {}]
}
uplevel 1 [list foreach $args $valueList {break}]
return [lrange $valueList [llength $args] end]
}
Может кто-нибудь объяснить мне это? Объяснение в книге недостаточно помогает мне:(