Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022

lreplace (1t)


lreplace - Replace elements in a list with new elements


lreplace list first last ?element element ...?


lreplace(1t)                 Tcl Built-In Commands                lreplace(1t)


       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 spec-
       ifying  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

       If  last  is  less  than  first,  then  any  specified elements will be
       inserted into the list before the point specified by first with no ele-
       ments 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]

       See attributes(7) for descriptions of the following attributes:

       |Availability   | runtime/tcl-8    |
       |Stability      | Uncommitted      |

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

       element, list, replace

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.

Tcl                                   7.4                         lreplace(1t)