summaryrefslogtreecommitdiff
path: root/doc/lispref/sequences.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lispref/sequences.texi')
-rw-r--r--doc/lispref/sequences.texi47
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},
@end example
@end defun
+@defun seq-mapcat function sequence &optional type
+ This function returns the result of applying @code{seq-concatenate}
+to the result of applying @var{function} to each element of
+@var{sequence}. The result is a sequence of type @var{type}, or a
+list if @var{type} is @code{nil}.
+
+@example
+@group
+(seq-mapcat #'seq-reverse '((3 2 1) (6 5 4)))
+@result{} (1 2 3 4 5 6)
+@end group
+@end example
+@end defun
+
+@defun seq-partition sequence n
+ This function returns a list of the elements of @var{sequence}
+grouped into sub-sequences of length @var{n}. The last sequence may
+contain less elements than @var{n}. @var{n} must be an integer. If
+@var{n} is a negative integer or 0, nil is returned.
+
+@example
+@group
+(seq-partition '(0 1 2 3 4 5 6 7) 3)
+@result{} ((0 1 2) (3 4 5) (6 7))
+@end group
+@end example
+@end defun
+
+@defun seq-group-by function sequence
+ This function separates the elements of @var{sequence} into an alist
+whose keys are the result of applying @var{function} to each element
+of @var{sequence}. Keys are compared using @code{equal}.
+
+@example
+@group
+(seq-group-by #'integerp '(1 2.1 3 2 3.2))
+@result{} ((t 2 3 1) (nil 3.2 2.1))
+@end group
+@group
+(seq-group-by #'car '((a 1) (b 2) (a 3) (c 4)))
+@result{} ((a (a 3) (a 1)) (b (b 2)) (c (c 4)))
+@end group
+@end example
+@end defun
+
@defmac seq-doseq (var sequence [result]) body@dots{}
@cindex sequence iteration
-This macro is like @code{dolist}, except that @var{sequence} can be a list,
+ This macro is like @code{dolist}, except that @var{sequence} can be a list,
vector or string (@pxref{Iteration} for more information about the
@code{dolist} macro). This is primarily useful for side-effects.
@end defmac