![]() |
![]()
| ![]() |
![]()
NAMElseq - Build a numeric sequence returned as a list SYNOPSISlseq start ?(..|to)? end ??by? step? lseq start count count ??by? step? lseq count ?by step? DESCRIPTIONThe lseq command creates a sequence of numeric values using the given parameters start, end, and step. The operation argument ".." or "to" defines the range. The "count" option is used to define a count of the number of elements in the list. A short form use of the command, with a single count value, will create a range from 0 to count-1. The lseq command can produce both increasing and decreasing sequences. When both start and end are provided without a step value, then if start <= end, the sequence will be increasing and if start > end it will be decreasing. If a step vale is included, it's sign should agree with the direction of the sequence (descending → negative and ascending → positive), otherwise an empty list is returned. For example: % lseq 1 to 5 ;# increasing → 1 2 3 4 5 % lseq 5 to 1 ;# decreasing → 5 4 3 2 1 % lseq 6 to 1 by 2 ;# decreasing, step wrong sign, empty list % lseq 1 to 5 by 0 ;# all step sizes of 0 produce an empty list The numeric arguments, start, end, step, and count, may also be a valid expression. The expression will be evaluated and the numeric result will be used. An expression that does not evaluate to a number will produce an invalid argument error. Start defines the initial value and end defines the limit, not necessarily the last value. lseq produces a list with count elements, and if count is not supplied, it is computed as: count = int( (end - start + step) / step ) EXAMPLESlseq 3 → 0 1 2 lseq 3 0 → 3 2 1 0 lseq 10 .. 1 by -2 → 10 8 6 4 2 set l [lseq 0 -5] → 0 -1 -2 -3 -4 -5 foreach i [lseq [llength $l]] { SEE ALSOforeach(n), list(n), lappend(n), lassign(n), lindex(n), linsert(n), llength(n), lmap(n), lpop(n), lrange(n), lremove(n), lreplace(n), lreverse(n), lsearch(n), lset(n), lsort(n) KEYWORDSelement, index, list
|