Bây giờ, đổi tên các lệnh khác có giá trị đổi tên, ví dụ:
& regsub R
& string S
& while W
Một lệnh có giá trị đổi tên nếu, với độ dài n và các lần xuất hiện k , k (n-1) - (n + 4)> 0 . Giải cho k , công thức trở thành k > (n+4)/(n-1)
. Đây là bảng tham chiếu giúp dễ dàng:
length of minimum example(s)
command occurrences
------------------------------------------------
2 6 if (consider renaming to "?")
3 4 for, set (consider renaming to "=")
4 3 eval, expr, incr (consider renaming to "+"), info, join, proc, puts, scan
5 3 break, catch, lsort, split, subst, trace, unset, while
6 3 format, lindex, lrange, regexp, regsub, rename, return, string, switch
7 2 foreach, lappend, linsert, llength, lsearch, unknown
. 2 lreplace
. 2 continue
. 2
Đối với các chương trình lớn hơn, đây là một mẹo tôi nghĩ đến nhưng chưa được áp dụng:
proc unknown {c args} {eval [info commands $c*] $args}
Điều này mô phỏng viết tắt lệnh tương tác! Nó có giá 54 ký tự, nhưng bây giờ bạn có thể sử dụng j
cho join
, sp
cho split
, st
cho string
, w
cho while
, v.v.
info script {};set tcl_interactive 1