The following procedures modify an existing list, either by changing elements of the list, or by changing the list structure itself.
Set the kth element of list to val.
Set the kth cdr of list to val.
Return a newly-created copy of lst with elements
eq?
to item removed. This procedure mirrors
memq
: delq
compares elements of lst against
item with eq?
.
Return a newly-created copy of lst with elements
eqv?
to item removed. This procedure mirrors
memv
: delv
compares elements of lst against
item with eqv?
.
Return a newly-created copy of lst with elements
equal?
to item removed. This procedure mirrors
member
: delete
compares elements of lst
against item with equal?
.
See also SRFI-1 which has an extended delete
(Deleting), and also an lset-difference
which can delete
multiple items in one call (Set Operations on Lists).
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.
Like delq!
, but only deletes the first occurrence of
item from lst. Tests for equality using
eq?
. See also delv1!
and delete1!
.
Like delv!
, but only deletes the first occurrence of
item from lst. Tests for equality using
eqv?
. See also delq1!
and delete1!
.
Like delete!
, but only deletes the first occurrence of
item from lst. Tests for equality using
equal?
. See also delq1!
and delv1!
.
Return a list containing all elements from lst which satisfy the predicate pred. The elements in the result list have the same order as in lst. The order in which pred is applied to the list elements is not specified.
filter
does not change lst, but the result may share a
tail with it. filter!
may modify lst to construct its
return.