# 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