Provided by: tcl8.6-doc_8.6.1-4ubuntu1_all bug


       lreplace - Replace elements in a list with new elements


       lreplace list first last ?element element ...?


       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

       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.


       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]


       list(3tcl),  lappend(3tcl),  lindex(3tcl),  linsert(3tcl),  llength(3tcl),  lsearch(3tcl),
       lset(3tcl), lrange(3tcl), lsort(3tcl), string(3tcl)


       element, list, replace