lreplace(3tcl)
NAME
lreplace - Replace elements in a list with new elements
SYNOPSIS
lreplace list first last ?element element ...?
______________________________________________________________________________
DESCRIPTION
lreplace returns a new list formed by replacing one or more elements of
list with the element arguments. first and last are index values
specifying the first and last elements of the range to replace. The
index values first and last are interpreted the same as index values
for the command string index, supporting simple index arithmetic and
indices relative to the end of the list. 0 refers to the first element
of the list, and end refers to the last element of the list. If list
is empty, then first and last are ignored.
If first is less than zero, it is considered to refer to before the
first element of the list. For non-empty lists, the element indicated
by first must exist or first must indicate before the start of the
list.
If last is less than first, then any specified elements will be
inserted into the list at the point specified by first with no elements
being deleted.
The element arguments specify zero or more new arguments to be added to
the list in place of those that were deleted. Each element argument
will become a separate element of the list. If no element arguments
are specified, then the elements between first and last are simply
deleted. If list is empty, any element arguments are added to the end
of the list.
EXAMPLES
Replacing an element of a list with another:
% lreplace {a b c d e} 1 1 foo
a foo c d e
Replacing two elements of a list with three:
% lreplace {a b c d e} 1 2 three more elements
a three more elements d e
Deleting the last element from a list in a variable:
% set var {a b c d e}
a b c d e
% set var [lreplace $var end end]
a b c d
A procedure to delete a given element from a list:
proc lremove {listVariable value} {
upvar 1 $listVariable var
set idx [lsearch -exact $var $value]
set var [lreplace $var $idx $idx]
}
SEE ALSO
list(3tcl), lappend(3tcl), lindex(3tcl), linsert(3tcl), llength(3tcl),
lsearch(3tcl), lset(3tcl), lrange(3tcl), lsort(3tcl), string(3tcl)
KEYWORDS
element, list, replace
Free and Open Source Software