Estou redefinindo set
o comando do Tcl para permitir múltiplas atribuições ao mesmo tempo. No entanto, quando tento usar as variáveis, ele relata um erro de "variável indefinida". Aqui estão as duas maneiras que tentei até agora:
proc set args {
uplevel foreach {*}$args break
}
proc set {l1 l2} {
uplevel foreach $l1 $l2 break
}
Eu executei um llength
on $args
e ele relatou uma lista de dois elementos. Estou bastante confuso sobre esse comportamento.
Estou chamando assim:
set {a b c d} {e f g h}
set {a s d f} {q w e r t y}
* Editar:
Fiz um pouco mais de ajustes nele. Encontrei uma maneira de fazer funcionar (na maior parte, porque valores extras são descartados silenciosamente, mas isso é irrelevante para a pergunta original), mas ainda estou confuso sobre POR QUE essa maneira funcionou e as outras não:
proc set {l L} {
uplevel foreach [list $l] [list $L] break
}