# guile
guile> (version)
"1.4"
guile> (expt 2 -1)
ERROR: In procedure integer-expt:
ERROR: Argument out of range: -1
ABORT: (out-of-range)
guile> ($expt 2 -1)
0.5
guile> 

>From boot-9.scm:
(define expt
  (let ((integer-expt integer-expt))
    (lambda (z1 z2)
      (cond ((exact? z2)
             (integer-expt z1 z2))
            ((and (real? z2) (real? z1) (>= z1 0))
             ($expt z1 z2))
            (else
             (exp (* z2 (log z1))))))))

Previously, integer-expt accepted negative arguments.

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.

-- 

B. Urban

Reply via email to