LINUX.ORG.RU

Tcl/Tk, рекурсия?


0

0

Добрый день.
Вот тут: http://wiki.tcl.tk/808 есть такой пример.
proc clock:set var {
global $var
set $var [clock format [clock seconds] -format %H:%M:%S]
after 800 [list clock:set $var]
}

pack [label .l -textvariable myclock]
clock:set myclock

[cut]
This is not a recursion, the next instance of clock:set will be started
long after the current has returned, and it won't go deeper in stack
level.
[cut]

И дальше:

[cut]
(...) command will be restarted (...) with a different id each time.
[cut]

А почему?

anonymous

Командой after команда добавляется в _очередь_ эвентов и вызвавшая эту команду процедура продолжает исполнение. Когда пройдёт нужное время (в данном случае 800 мс), она будет из этой очереди взята и исполнена.

Именно поэтому и не рекурсия. Надеюсь, понятно объяснил?

gaa ★★
()
Ответ на: комментарий от anonymous

> call/cc на tk

тупой анонимус, на tcl же

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.