fix lazy take bug -- invariant being tested on unforced argument

This commit is contained in:
Stephen Chang 2011-01-30 12:10:47 -05:00
parent bc5ab1e031
commit 808361b789

View File

@ -576,8 +576,8 @@
(define* (take n l)
(let ([n0 (! n)])
(unless (exact-nonnegative-integer? n)
(raise-type-error 'take "non-negative exact integer" 0 n l))
(unless (exact-nonnegative-integer? n0)
(raise-type-error 'take "non-negative exact integer" 0 n0 l))
(let loop ([n n0] [l l])
(if (zero? n)
'()