Am So., 6. Nov. 2022 um 15:58 Uhr schrieb Jean Abou Samra <j...@abou-samra.fr>: > > 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 <j...@abou-samra.fr> > 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 > >
Agreed, far better. Thanks, Harm