В общем, надо сделать так, чтобы вот этот код выдал "c1\nc2\nc3\n": -----------------------CUT----------------------- #!/usr/bin/tclsh set cmds [ list "c1" "c2" "c3" ] set funcs [] foreach cmd $cmds { set lambda "lambda_$cmd" proc $lambda {} { puts "$cmd" } lappend funcs $lambda } foreach func $funcs { $func } -----------------------CUT----------------------- И да, я знаю, что конкретно ^это^ можно сделать проще. Это просто минимальный код, чтобы было понятно что именно мне нужно. P.S. TCL почти не знаю, изучаю на ходу.