tcl:使用lmap预先添加字符串列表

tcl:使用lmap预先添加字符串列表,tcl,Tcl,我有以下输入:{xyz},并且需要输出为{$x$y$z} 使用append和foreach set args {x y z} #--------------------------------- # using append #--------------------------------- set result {} foreach i $args { append result " \$[set i]" } puts $result ;# $x $y $z 但是当我尝试使用lma

我有以下输入:{xyz},并且需要输出为{$x$y$z} 使用
append
foreach

set args {x y z}
#---------------------------------
# using append
#---------------------------------
set result {}
foreach i $args {
    append result " \$[set i]"
}
puts $result ;# $x $y $z
但是当我尝试使用
lmap
时,我得到了以下错误“未知命令”$x` 我尝试了通常的引用技巧,但没有奏效

#---------------------------------
# using lmap
#---------------------------------
# results in  
# unknown command '$x'
lmap i $args { \$[set i] }

在lmap命令的脚本体中需要一个命令。或许

lmap i $args { format {$%s} $i }
根据多纳尔的建议:

lmap i $args { string cat \$ $i }

您也可以使用
set
,但方式略有不同:

lmap i $args {set i "\$$i"}

[也就是说,除了使用Donal在对Glenn的回答的评论中提到的
字符串cat
之外,

字符串cat
正是为这种事情添加的。