为什么在Tcl的交互模式下我不能使用w
代替while
?只有wh
似乎工作:(见Ideone.com demo)为什么我不能在Tcl的交互模式下使用'w`作为'while'?
info script {}
set tcl_interactive 1
set i 0
wh {$i<10} {puts [incr i]}
w
似乎命令和特效的集合中很明确的:
puts [lsort [concat [info commands] [info procs]]]
后追加申请阵列auto_execok auto_execok auto_import auto_import auto_load auto_load auto_load_index auto_load_index auto_qualify auto_qualify二进制中断案例catch cd chan时钟时钟关闭concat conti nue字典编码eof错误eval exec退出expr fblocked fconfigure fcopy文件fileevent flush for foreach格式获取glob global如果incr info interp连接lappend lassign lindex linsert list llength载入lrange lrepeat lreplace lreverse lsearch lset lsort命名空间打开软件包pid proc put pwd读取regexp regsub重命名回扫描谋设置套接字源分割字符串SUBST切换tclLog tclLog告诉时间跟踪未知的未知卸载未设置更新uplevel upvar变量vwait而
这个问题,就像另一个我刚才问,纯粹是抽象的,我注意到了这一点奇怪的行为,而代码打高尔夫球,并想更好地理解内部。
的'auto_execok'是一个神奇的过程,查找如何运行一个名为外部命令(有时是不平凡的任务)。当然有记录。 –
啊,这会清理起来。谢谢! (顺便说一句,这只适用于[代码高尔夫](http://codegolf.stackexchange.com/a/20570/14255) - 我不会在任何实际应用中使用它。)但它确实显示它可能会显着因为它取决于用户路径中的程序,所以依赖于交互式快捷方式是不稳定的... –
Tcl在codegolf中通常不会像Perl中的那么短。 Protip:缩写子命令工作正常,你可以用'interp alias'做恶事。或者你可以选择颈静脉和部署压缩代码(在8.6中使用'zlib解压缩')。 ;-) –