使用 Tcl 的 apply 函数进行列表排序
list sorting using apply function of Tcl
假设我有如下列表:
set listNums {0 -1 5 5 -5 1 10 100 -10 -10 1000}
我想用绝对值排序。我从另一个脚本中获取了以下内容。我很难理解这一点。有人可以帮助我了解以下脚本中发生的事情吗?我用 "puts" 打印出每个阶段的值,但我还是没有得到它!
"a" 和 "b" 如何更新?为什么我们需要 "return 0" ?
对不起,如果我问的是基本问题。
lsort -command {apply {
{a b}
{
if {[expr {abs($a)] < [expr {abs($b)}]} {return -1}
if {[expr {abs($a)] > [expr {abs($b)}]} {return 1}
if {$a < $b} {return -1}
if {$a > $b} {return 1}
return 0
}
}} $listNums
假设我有如下列表:
set listNums {0 -1 5 5 -5 1 10 100 -10 -10 1000}
我想用绝对值排序。我从另一个脚本中获取了以下内容。我很难理解这一点。有人可以帮助我了解以下脚本中发生的事情吗?我用 "puts" 打印出每个阶段的值,但我还是没有得到它!
"a" 和 "b" 如何更新?为什么我们需要 "return 0" ?
对不起,如果我问的是基本问题。
lsort -command {apply {
{a b}
{
if {[expr {abs($a)] < [expr {abs($b)}]} {return -1}
if {[expr {abs($a)] > [expr {abs($b)}]} {return 1}
if {$a < $b} {return -1}
if {$a > $b} {return 1}
return 0
}
}} $listNums