Fixed `stream-add-between'.
Don't put an extra seperator element at the end of the stream. Brings it in-line with the list version (`add-between') and sequence version (`sequence-add-between'). Includes a test.
This commit is contained in:
parent
36dd749268
commit
6e1ee717f7
|
@ -156,8 +156,11 @@
|
||||||
(define (stream-add-between s e)
|
(define (stream-add-between s e)
|
||||||
(unless (stream? s)
|
(unless (stream? s)
|
||||||
(raise-type-error 'stream-add-between "stream" s))
|
(raise-type-error 'stream-add-between "stream" s))
|
||||||
(let loop ([s s])
|
(if (stream-empty? s)
|
||||||
(cond
|
empty-stream
|
||||||
[(stream-empty? s) empty-stream]
|
(stream-cons
|
||||||
[else (stream-cons (stream-first s)
|
(stream-first s)
|
||||||
(stream-cons e (loop (stream-rest s))))])))
|
(let loop ([s (stream-rest s)])
|
||||||
|
(cond [(stream-empty? s) empty-stream]
|
||||||
|
[else (stream-cons e (stream-cons (stream-first s)
|
||||||
|
(loop (stream-rest s))))])))))
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
(load-relative "loadtest.rktl")
|
(load-relative "loadtest.rktl")
|
||||||
|
|
||||||
(Section 'sequence)
|
(Section 'sequence)
|
||||||
|
@ -108,6 +107,8 @@
|
||||||
(sequence-ref (sequence-add-between (in-naturals) #t) 2))
|
(sequence-ref (sequence-add-between (in-naturals) #t) 2))
|
||||||
(test #t 'sequence-add-between
|
(test #t 'sequence-add-between
|
||||||
(sequence-ref (sequence-add-between (in-naturals) #t) 3))
|
(sequence-ref (sequence-add-between (in-naturals) #t) 3))
|
||||||
|
(test 3 'sequence-add-between
|
||||||
|
(sequence-length (sequence-add-between (in-range 2) #t)))
|
||||||
|
|
||||||
(arity-test sequence-count 2 2)
|
(arity-test sequence-count 2 2)
|
||||||
(test 0 'sequence-count (sequence-count even? empty-sequence))
|
(test 0 'sequence-count (sequence-count even? empty-sequence))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user