Trie les éléments d'une liste
lsort ?options? list
Cette commande trie les éléments de list, retournant une nouvelle liste triée. L'implémentation de la commande lsort utilise l'algorithme merge-sort qui est un tri stable ayant pour performance caractéristique O(n log n).
Par défaut un tri ASCII est utilisé avec le résultat renvoyé en ordre ascendant. Néanmoins, quelconque des options suivantes peut être spécifiée avant list pour contrôler le processus de tri (les abréviations uniques sont acceptées):
Voici la procédure lshuffle qui permet de rendre une liste aléatoire:
proc lshuffle {sorted} { set shuffled {} while { [llength $sorted] > 0} { set j [expr {int(rand() * [llength $sorted])}] lappend shuffled [lindex $sorted $j] set sorted [lreplace $sorted $j $j] } return $shuffled } set abc {a b c d e f g h i j k l m n o p q r s t u v w x y z} puts $abc # a b c d e f g h i j k l m n o p q r s t u v w x y z puts [lshuffle $abc] # k z o v j a t u q p g f l d e n c y r i w b h s x m puts [lshuffle $abc] # p g l x c b r y h o t j z d q w s k a v i f n u m e