Better error message for invalid args to sorted?.

This commit is contained in:
Alex Shinn 2013-05-12 10:31:30 +09:00
parent 74775675fc
commit 2cb9d2237f

View file

@ -30,11 +30,13 @@
(else (lp (+ i 1))))))) (else (lp (+ i 1)))))))
((null? seq) ((null? seq)
#t) #t)
(else ((pair? seq)
(let lp ((ls1 seq) (ls2 (cdr seq))) (let lp ((ls1 seq) (ls2 (cdr seq)))
(cond ((null? ls2) #t) (cond ((null? ls2) #t)
((less (key (car ls2)) (key (car ls1))) #f) ((less (key (car ls2)) (key (car ls1))) #f)
(else (lp ls2 (cdr ls2))))))))) (else (lp ls2 (cdr ls2))))))
(else
(error "sorted?: not a list or vector" seq)))))
(define (merge! ls1 ls2 less . o) (define (merge! ls1 ls2 less . o)
(let ((key (if (pair? o) (car o) (lambda (x) x)))) (let ((key (if (pair? o) (car o) (lambda (x) x))))