diff options
Diffstat (limited to 'doc/lispref/sequences.texi')
| -rw-r--r-- | doc/lispref/sequences.texi | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index f82c4962759..f268c0d11e2 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -695,9 +695,54 @@ concatenation of @var{sequences}. @var{type} may be: @code{vector}, | |||
| 695 | @end example | 695 | @end example |
| 696 | @end defun | 696 | @end defun |
| 697 | 697 | ||
| 698 | @defun seq-mapcat function sequence &optional type | ||
| 699 | This function returns the result of applying @code{seq-concatenate} | ||
| 700 | to the result of applying @var{function} to each element of | ||
| 701 | @var{sequence}. The result is a sequence of type @var{type}, or a | ||
| 702 | list if @var{type} is @code{nil}. | ||
| 703 | |||
| 704 | @example | ||
| 705 | @group | ||
| 706 | (seq-mapcat #'seq-reverse '((3 2 1) (6 5 4))) | ||
| 707 | @result{} (1 2 3 4 5 6) | ||
| 708 | @end group | ||
| 709 | @end example | ||
| 710 | @end defun | ||
| 711 | |||
| 712 | @defun seq-partition sequence n | ||
| 713 | This function returns a list of the elements of @var{sequence} | ||
| 714 | grouped into sub-sequences of length @var{n}. The last sequence may | ||
| 715 | contain less elements than @var{n}. @var{n} must be an integer. If | ||
| 716 | @var{n} is a negative integer or 0, nil is returned. | ||
| 717 | |||
| 718 | @example | ||
| 719 | @group | ||
| 720 | (seq-partition '(0 1 2 3 4 5 6 7) 3) | ||
| 721 | @result{} ((0 1 2) (3 4 5) (6 7)) | ||
| 722 | @end group | ||
| 723 | @end example | ||
| 724 | @end defun | ||
| 725 | |||
| 726 | @defun seq-group-by function sequence | ||
| 727 | This function separates the elements of @var{sequence} into an alist | ||
| 728 | whose keys are the result of applying @var{function} to each element | ||
| 729 | of @var{sequence}. Keys are compared using @code{equal}. | ||
| 730 | |||
| 731 | @example | ||
| 732 | @group | ||
| 733 | (seq-group-by #'integerp '(1 2.1 3 2 3.2)) | ||
| 734 | @result{} ((t 2 3 1) (nil 3.2 2.1)) | ||
| 735 | @end group | ||
| 736 | @group | ||
| 737 | (seq-group-by #'car '((a 1) (b 2) (a 3) (c 4))) | ||
| 738 | @result{} ((a (a 3) (a 1)) (b (b 2)) (c (c 4))) | ||
| 739 | @end group | ||
| 740 | @end example | ||
| 741 | @end defun | ||
| 742 | |||
| 698 | @defmac seq-doseq (var sequence [result]) body@dots{} | 743 | @defmac seq-doseq (var sequence [result]) body@dots{} |
| 699 | @cindex sequence iteration | 744 | @cindex sequence iteration |
| 700 | This macro is like @code{dolist}, except that @var{sequence} can be a list, | 745 | This macro is like @code{dolist}, except that @var{sequence} can be a list, |
| 701 | vector or string (@pxref{Iteration} for more information about the | 746 | vector or string (@pxref{Iteration} for more information about the |
| 702 | @code{dolist} macro). This is primarily useful for side-effects. | 747 | @code{dolist} macro). This is primarily useful for side-effects. |
| 703 | @end defmac | 748 | @end defmac |