Next: , Previous: Append/Reverse, Up: Lists


22.2.6 List Modification

The following procedures modify an existing list, either by changing elements of the list, or by changing the list structure itself.

— Scheme Procedure: list-set! lst k val
— C Function: scm_list_set_x (lst, k, val)

Set the kth element of lst to val.

— Scheme Procedure: list-cdr-set! lst k val
— C Function: scm_list_cdr_set_x (lst, k, val)

Set the kth cdr of lst to val.

— Scheme Procedure: delq item lst
— C Function: scm_delq (item, lst)

Return a newly-created copy of lst with elements eq? to item removed.

— Scheme Procedure: delv item lst
— C Function: scm_delv (item, lst)

Return a newly-created copy of lst with elements eqv? to item removed.

— Scheme Procedure: delete x lst [=]
— C Function: scm_delete (x, lst, =)

Return a list containing all elements from lst, but without the elements equal to x. Equality is determined by the equality predicate =, which defaults to equal? if not given.

delete! is allowed, but not required to modify the structure of the argument list in order to produce the result.

— Scheme Procedure: delq! item lst
— Scheme Procedure: delv! item lst
— Scheme Procedure: delete! item lst
— C Function: scm_delq_x (item, lst)
— C Function: scm_delv_x (item, lst)
— C Function: scm_delete_x (item, lst)

These procedures are destructive versions of delq, delv and delete: they modify the pointers in the existing lst rather than creating a new list.

Caveat evaluator: Like other destructive list functions, these functions cannot modify the binding of lst, and so cannot be used to delete the first element of lst destructively.

— Scheme Procedure: delq1! item lst
— C Function: scm_delq1_x (item, lst)

Like delq!, but only deletes the first occurrence of item from lst.

— Scheme Procedure: delv1! item lst
— C Function: scm_delv1_x (item, lst)

Like delv!, but only deletes the first occurrence of item from lst.

— Scheme Procedure: delete1! item lst
— C Function: scm_delete1_x (item, lst)

Like delete!, but only deletes the first occurrence of item from lst.