~ 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