From 5665fe3477a0fff2d4a072f14c8552d68ff3a10d Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 18 Nov 2011 19:53:17 -0700 Subject: [PATCH] fix `sequence-filer' on empty sequence fix provided by Shviller Closes PR 12383 --- collects/racket/sequence.rkt | 3 ++- collects/tests/racket/sequence.rktl | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/collects/racket/sequence.rkt b/collects/racket/sequence.rkt index 6e420a43a1..e230be6f43 100644 --- a/collects/racket/sequence.rkt +++ b/collects/racket/sequence.rkt @@ -120,7 +120,8 @@ (lambda () (let loop ([next (lambda () (sequence-generate* s))]) (let-values ([(vals next) (next)]) - (if (apply f vals) + (if (or (not vals) + (apply f vals)) (values (lambda (v+n) (apply values (car v+n))) (lambda (v+n) (let loop ([next (cdr v+n)]) diff --git a/collects/tests/racket/sequence.rktl b/collects/tests/racket/sequence.rktl index a03bd95bd2..17e9b54b0a 100644 --- a/collects/tests/racket/sequence.rktl +++ b/collects/tests/racket/sequence.rktl @@ -97,6 +97,7 @@ (arity-test sequence-filter 2 2) (err/rt-test (sequence-filter 2 (in-naturals)) exn:fail?) (test 4 'sequence-filter (sequence-ref (sequence-filter even? (in-naturals)) 2)) + (test 0 sequence-length (sequence-filter (thunk* #t) empty-sequence)) (arity-test sequence-add-between 2 2) (test 0 'sequence-add-between