~ chicken-r7rs (master) 54919112d2df913c78323c225897fcf270c6fcdf
commit 54919112d2df913c78323c225897fcf270c6fcdf
Author: Peter Bex <peter@more-magic.net>
AuthorDate: Sat Jul 6 19:24:42 2013 +0000
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Sat Jul 6 19:24:42 2013 +0000
Don't check the same object's type twice
diff --git a/scheme.base.scm b/scheme.base.scm
index 3b6ad1d..d49c81c 100644
--- a/scheme.base.scm
+++ b/scheme.base.scm
@@ -109,13 +109,13 @@
(: boolean=? (boolean boolean #!rest boolean -> boolean))
(define (boolean=? b1 b2 . rest)
+ (##sys#check-boolean b1 'boolean=?)
;; Loop across all args, checking for booleans. Don't shortcut and
;; stop when we find nonequality.
(let lp ((b1 b1)
(b2 b2)
(rest rest)
(result (eq? b1 b2)))
- (##sys#check-boolean b1 'boolean=?)
(##sys#check-boolean b2 'boolean=?)
(if (null? rest)
(and result (eq? b1 b2))
Trap