Le 06/11/2022 à 15:47, Thomas Morley a écrit : > Hi, > > please find attached a doc-patch, clearifying eq?/eqv?/equal? are > working with more than two arguments. Well, but the signature eq? x y ... is still not correct, because (eq?) and (eq? x) are also valid. eq? takes *any* number of arguments. Probably better to do: From 09177dab48dabee4b6b6ac5fe110cd56e3e6e261 Mon Sep 17 00:00:00 2001 From: Jean Abou Samra Date: Sun, 6 Nov 2022 15:55:24 +0100 Subject: [PATCH] Doc: document that eq?, eqv? and equal? take any number of  arguments ---  doc/ref/api-utility.texi | 29 ++++++++++++++++-------------  1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/doc/ref/api-utility.texi b/doc/ref/api-utility.texi index cb7e32f2b..27c6b42f7 100644 --- a/doc/ref/api-utility.texi +++ b/doc/ref/api-utility.texi @@ -55,11 +55,12 @@ made up of the same pairs.  Such lists look the same (when printed),  and @code{equal?} will consider them the same.  @sp 1 -@deffn {Scheme Procedure} eq? x y +@deffn {Scheme Procedure} eq? @dots{}  @deffnx {C Function} scm_eq_p (x, y)  @rnindex eq? -Return @code{#t} if @var{x} and @var{y} are the same object, except -for numbers and characters.  For example, +The Scheme procedure returns @code{#t} if all of its arguments are the +same object, except for numbers and characters.  The C function does the +same but takes exactly two arguments.  For example,  @example  (define x (vector 1 2 3)) @@ -109,18 +110,19 @@ The @code{==} operator should not be used on @code{SCM} values, an  @end deftypefn  @sp 1 -@deffn {Scheme Procedure} eqv? x y +@deffn {Scheme Procedure} eqv? @dots{}  @deffnx {C Function} scm_eqv_p (x, y)  @rnindex eqv? -Return @code{#t} if @var{x} and @var{y} are the same object, or for -characters and numbers the same value. +The Scheme procedure returns @code{#t} if all of its arguments are the +same object, or for characters and numbers the same value.  The C function +is similar but takes exactly two arguments.  On objects except characters and numbers, @code{eqv?} is the same as -@code{eq?} above, it's true if @var{x} and @var{y} are the same -object. +@code{eq?} above.  @code{(eqv? x y)} is true if @var{x} and @var{y} are +the same object. -If @var{x} and @var{y} are numbers or characters, @code{eqv?} compares -their type and value.  An exact number is not @code{eqv?} to an +If @var{x} and @var{y} are numbers or characters, @code{(eqv? x y)} +compares their type and value.  An exact number is not @code{eqv?} to an  inexact number (even if their value is the same).  @example @@ -130,11 +132,12 @@ inexact number (even if their value is the same).  @end deffn  @sp 1 -@deffn {Scheme Procedure} equal? x y +@deffn {Scheme Procedure} equal? @dots{}  @deffnx {C Function} scm_equal_p (x, y)  @rnindex equal? -Return @code{#t} if @var{x} and @var{y} are the same type, and their -contents or value are equal. +The Scheme procedure returns @code{#t} if all of its arguments are the +same type, and their contents or value are equal.  The C function is +similar, but takes exactly two arguments.  For a pair, string, vector, array or structure, @code{equal?} compares the  contents, and does so using the same @code{equal?} recursively, -- 2.37.3