[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Doc] Patch: eq? and friends accepts more than two arguments
From: |
Thomas Morley |
Subject: |
Re: [Doc] Patch: eq? and friends accepts more than two arguments |
Date: |
Sun, 6 Nov 2022 16:17:40 +0100 |
Am So., 6. Nov. 2022 um 15:58 Uhr schrieb Jean Abou Samra <jean@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 <jean@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