Не удается понять команду повышения уровня в TCL

У меня возникли некоторые проблемы с пониманием использования 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]
}

Может кто-нибудь объяснить мне это? Объяснение в книге недостаточно помогает мне:(

6
задан Donal Fellows 18 July 2012 в 06:04
поделиться