Dirk Herrmann <[EMAIL PROTECTED]> writes:

> The test for exactness if wrong here:  Rationals (if supported) could
> fulfill that predicate as well.  I will apply the following patch:
> 
> diff -u -r1.208 boot-9.scm
> --- boot-9.scm  2000/07/01 17:01:22     1.208
> +++ boot-9.scm  2000/07/12 07:23:07
> @@ -793,7 +793,7 @@
>  (define expt
>    (let ((integer-expt integer-expt))
>      (lambda (z1 z2)
> -      (cond ((exact? z2)
> +      (cond ((and (integer? z2) (>= z2 0))
>              (integer-expt z1 z2))
>             ((and (real? z2) (real? z1) (>= z1 0))
>              ($expt z1 z2))

Did you check with R5RS that it is OK to return an inexact in the case
of exact negative exponent?  (I presume it ius.)

> > I noticed also that list-tail does no longer accept a second negative
> > argument. R5RS say it is an error if the list length is shorter
> > than the second argument, but is silent for the negative case.
> 
> But the example implementation given in R5RS relies on the fact that the
> parameter is positive or zero.  Further, I can not think of any reasonable
> behaviour for the case of negative indexes.  Thus, IMO it is a bug fix
> rather than a bug that negative indexes are not accepted.

Indeed.

Reply via email to