[cl-utilities-cvs] CVS update: cl-utilities/extremum.lisp
Peter Scott
pscott at common-lisp.net
Mon May 16 22:06:47 UTC 2005
Update of /project/cl-utilities/cvsroot/cl-utilities
In directory common-lisp.net:/tmp/cvs-serv13214
Modified Files:
extremum.lisp
Log Message:
Probably fixed problem with START and END and error checking.
Date: Tue May 17 00:06:47 2005
Author: pscott
Index: cl-utilities/extremum.lisp
diff -u cl-utilities/extremum.lisp:1.3 cl-utilities/extremum.lisp:1.4
--- cl-utilities/extremum.lisp:1.3 Fri May 13 21:45:09 2005
+++ cl-utilities/extremum.lisp Tue May 17 00:06:47 2005
@@ -41,7 +41,8 @@
http://www.cliki.net/EXTREMUM for the full
specification. Additionally, START and END specify the beginning and
ending indices of the part of the sequence we should look at."
- (if (zero-length-p sequence)
+ (if (or (zero-length-p sequence)
+ (>= start (or end (length sequence))))
(restart-case (error 'no-extremum)
(continue ()
:report "Return NIL instead"
@@ -54,7 +55,8 @@
&key (key #'identity) (start 0) end)
(if (eql key #'identity)
(once-only (sequence predicate start end)
- `(if (zero-length-p ,sequence)
+ `(if (or (zero-length-p ,sequence)
+ (>= ,start (or ,end (length ,sequence))))
(restart-case (error 'no-extremum)
(continue ()
:report "Return NIL instead"
@@ -89,7 +91,8 @@
if the KEY function is so slow that calling it less often would be a
significant improvement; ordinarily it's slower."
(declare (optimize (speed 3) (safety 0) (space 0) (debug 1)))
- (if (zero-length-p sequence)
+ (if (or (zero-length-p sequence)
+ (>= start (or end (length sequence))))
(restart-case (error 'no-extremum)
(continue ()
:report "Return NIL instead"
More information about the Cl-utilities-cvs
mailing list