comparison lispref/lists.texi @ 90813:e6fdae9180d4

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 698-710) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 216) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-196
author Miles Bader <miles@gnu.org>
date Tue, 24 Apr 2007 21:56:25 +0000
parents 4ef881a120fe ea5eee51e6a0
children
comparison
equal deleted inserted replaced
90812:6137cc8ddf90 90813:e6fdae9180d4
1364 @example 1364 @example
1365 @group 1365 @group
1366 (delq '(4) sample-list) 1366 (delq '(4) sample-list)
1367 @result{} (a c (4)) 1367 @result{} (a c (4))
1368 @end group 1368 @end group
1369
1370 If you want to delete elements that are @code{equal} to a given value,
1371 use @code{delete} (see below).
1369 @end example 1372 @end example
1370 1373
1371 @defun remq object list 1374 @defun remq object list
1372 This function returns a copy of @var{list}, with all elements removed 1375 This function returns a copy of @var{list}, with all elements removed
1373 which are @code{eq} to @var{object}. The letter @samp{q} in @code{remq} 1376 which are @code{eq} to @var{object}. The letter @samp{q} in @code{remq}
1386 @group 1389 @group
1387 sample-list 1390 sample-list
1388 @result{} (a b c a b c) 1391 @result{} (a b c a b c)
1389 @end group 1392 @end group
1390 @end example 1393 @end example
1391 @noindent
1392 The function @code{delq} offers a way to perform this operation
1393 destructively. See @ref{Sets And Lists}.
1394 @end defun 1394 @end defun
1395 1395
1396 @defun memql object list 1396 @defun memql object list
1397 The function @code{memql} tests to see whether @var{object} is a member 1397 The function @code{memql} tests to see whether @var{object} is a member
1398 of @var{list}, comparing members with @var{object} using @code{eql}, 1398 of @var{list}, comparing members with @var{object} using @code{eql},
1446 @defun delete object sequence 1446 @defun delete object sequence
1447 If @code{sequence} is a list, this function destructively removes all 1447 If @code{sequence} is a list, this function destructively removes all
1448 elements @code{equal} to @var{object} from @var{sequence}. For lists, 1448 elements @code{equal} to @var{object} from @var{sequence}. For lists,
1449 @code{delete} is to @code{delq} as @code{member} is to @code{memq}: it 1449 @code{delete} is to @code{delq} as @code{member} is to @code{memq}: it
1450 uses @code{equal} to compare elements with @var{object}, like 1450 uses @code{equal} to compare elements with @var{object}, like
1451 @code{member}; when it finds an element that matches, it removes the 1451 @code{member}; when it finds an element that matches, it cuts the
1452 element just as @code{delq} would. 1452 element out just as @code{delq} would.
1453 1453
1454 If @code{sequence} is a vector or string, @code{delete} returns a copy 1454 If @code{sequence} is a vector or string, @code{delete} returns a copy
1455 of @code{sequence} with all elements @code{equal} to @code{object} 1455 of @code{sequence} with all elements @code{equal} to @code{object}
1456 removed. 1456 removed.
1457 1457
1458 For example: 1458 For example:
1459 1459
1460 @example 1460 @example
1461 @group 1461 @group
1462 (delete '(2) '((2) (1) (2))) 1462 (setq l '((2) (1) (2)))
1463 (delete '(2) l)
1463 @result{} ((1)) 1464 @result{} ((1))
1465 l
1466 @result{} ((2) (1))
1467 ;; @r{If you want to change @code{l} reliably,}
1468 ;; @r{write @code{(setq l (delete elt l))}.}
1469 @end group
1470 @group
1471 (setq l '((2) (1) (2)))
1472 (delete '(1) l)
1473 @result{} ((2) (2))
1474 l
1475 @result{} ((2) (2))
1476 ;; @r{In this case, it makes no difference whether you set @code{l},}
1477 ;; @r{but you should do so for the sake of the other case.}
1464 @end group 1478 @end group
1465 @group 1479 @group
1466 (delete '(2) [(2) (1) (2)]) 1480 (delete '(2) [(2) (1) (2)])
1467 @result{} [(1)] 1481 @result{} [(1)]
1468 @end group 1482 @end group
1469 @end example 1483 @end example
1470 @end defun 1484 @end defun
1471 1485
1472 @defun remove object sequence 1486 @defun remove object sequence
1473 This function is the non-destructive counterpart of @code{delete}. If 1487 This function is the non-destructive counterpart of @code{delete}. It
1474 returns a copy of @code{sequence}, a list, vector, or string, with 1488 returns a copy of @code{sequence}, a list, vector, or string, with
1475 elements @code{equal} to @code{object} removed. For example: 1489 elements @code{equal} to @code{object} removed. For example:
1476 1490
1477 @example 1491 @example
1478 @group 1492 @group
1507 several @code{equal} occurrences of an element in @var{list}, 1521 several @code{equal} occurrences of an element in @var{list},
1508 @code{delete-dups} keeps the first one. 1522 @code{delete-dups} keeps the first one.
1509 @end defun 1523 @end defun
1510 1524
1511 See also the function @code{add-to-list}, in @ref{List Variables}, 1525 See also the function @code{add-to-list}, in @ref{List Variables},
1512 for another way to add an element to a list stored in a variable. 1526 for a way to add an element to a list stored in a variable and used as a
1527 set.
1513 1528
1514 @node Association Lists 1529 @node Association Lists
1515 @section Association Lists 1530 @section Association Lists
1516 @cindex association list 1531 @cindex association list
1517 @cindex alist 1532 @cindex alist