]> git.eshelyaron.com Git - emacs.git/commitdiff
`value<` manual entry adjustments (bug#69709)
authorMattias EngdegÄrd <mattiase@acm.org>
Fri, 29 Mar 2024 14:25:22 +0000 (15:25 +0100)
committerEshel Yaron <me@eshelyaron.com>
Fri, 29 Mar 2024 19:22:09 +0000 (20:22 +0100)
* doc/lispref/sequences.texi (Sequence Functions):
Explain lexicographical ordering.  Note the dual nature of `nil`.
Mention the depth limit.

(cherry picked from commit f04bd5568708f96dfad0e8240c7f8f23c90b6813)

doc/lispref/sequences.texi

index 4a4241b92c9f638f9b99e66e14485e902bb5e847..c9e4762487815a4deae451a972ea9a074994f84c 100644 (file)
@@ -461,7 +461,7 @@ This function returns non-@code{nil} if @var{a} comes before @var{b} in
 the standard sorting order; this means that it returns @code{nil} when
 @var{b} comes before @var{a}, or if they are equal or unordered.
 
-the arguments @var{a} and @var{b} must have the same type.
+The arguments @var{a} and @var{b} must have the same type.
 Specifically:
 
 @itemize @bullet
@@ -471,7 +471,11 @@ Numbers are compared using @code{<} (@pxref{definition of <}).
 Strings are compared using @code{string<} (@pxref{definition of
 string<}) and symbols are compared by comparing their names as strings.
 @item
-Conses, lists, vectors and records are compared lexicographically.
+Conses, lists, vectors and records are compared lexicographically.  This
+means that the two sequences are compared element-wise from left to
+right until they differ, and the result is then that of @code{value<} on
+the first pair of differing elements.  If one sequence runs out of
+elements before the other, the shorter sequence comes before the longer.
 @item
 Markers are compared first by buffer, then by position.
 @item
@@ -489,8 +493,22 @@ Examples:
 (value< "dog" "cat") @result{} nil
 (value< 'yip 'yip) @result{} nil
 (value< '(3 2) '(3 2 0)) @result{} t
-(value< [3 2 1] [3 2 0]) @result{} nil
+(value< [3 2 "a"] [3 2 "b"]) @result{} t
 @end example
+
+@noindent
+Note that @code{nil} is treated as either a symbol or an empty list,
+depending on what it is compared against:
+
+@example
+(value< nil '(0)) @result{} t
+(value< 'nib nil) @result{} t
+@end example
+
+@noindent
+There is no limit to the length of sequences (lists, vectors and so on)
+that can be compared, but @code{value<} may fail with an error if used
+to compare circular or deeply nested data structures.
 @end defun
 
 @cindex sequence functions in seq