tcl:lsort
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
tcl:lsort [2023/10/11 16:12] – créée CrazyCat | tcl:lsort [2025/03/10 14:11] (Version actuelle) – crazycat | ||
---|---|---|---|
Ligne 16: | Ligne 16: | ||
* **-increasing** Trie la liste en ordre croissant ("plus petit" articles en premier). Par défaut. | * **-increasing** Trie la liste en ordre croissant ("plus petit" articles en premier). Par défaut. | ||
* **-decreasing** Trie la liste en ordre décroissant ("plus grand " articles en premier). | * **-decreasing** Trie la liste en ordre décroissant ("plus grand " articles en premier). | ||
- | * **-index //index//** Si cette option est spécifiée, | + | * **-index //index//** Si cette option est spécifiée, |
* **-unique** Si cette option est spécifiée, | * **-unique** Si cette option est spécifiée, | ||
===== Exemples ===== | ===== Exemples ===== | ||
+ | Voici la procédure // | ||
+ | <code tcl>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] | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | 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</ | ||
+ | Un autre exemple utilisant **-index**: | ||
+ | |||
+ | <code tcl># list of users: nick, words, lines | ||
+ | set random { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | proc order {ulist {type "" | ||
+ | | ||
+ | words { set idx 1; set opt " | ||
+ | lines { set idx 2; set opt " | ||
+ | default { set idx 0; set opt " | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | puts "order by names" | ||
+ | foreach l [order $random] { | ||
+ | puts " | ||
+ | } | ||
+ | |||
+ | puts "order by words" | ||
+ | foreach l [order $random words] { | ||
+ | puts " | ||
+ | } | ||
+ | |||
+ | puts "order by lines" | ||
+ | foreach l [order $random lines] { | ||
+ | puts " | ||
+ | }</ | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
[[: | [[: | ||
{{tag> | {{tag> | ||
tcl/lsort.1697040750.txt.gz · Dernière modification : 2023/10/11 16:12 de CrazyCat