Add vector-empty? (#2695)

* Add vector-empty?

* Add tests for vector-empty?
This commit is contained in:
Chuan Wei Foo 2019-08-03 21:51:33 +08:00 committed by Paulo Matos
parent f6b14a7bc1
commit 68621c3ee1
3 changed files with 17 additions and 2 deletions

View File

@ -30,6 +30,9 @@ a number between the @litchar{#} and
Returns @racket[#t] if @racket[v] is a vector, @racket[#f] otherwise.}
@defproc[(vector-empty? [v vector?]) boolean?]{
Returns @racket[#t] if @racket[v] is empty (i.e. its length is 0), @racket[#f] otherwise.}
@defproc[(make-vector [size exact-nonnegative-integer?]
[v any/c 0]) vector?]{

View File

@ -61,6 +61,12 @@
(err/rt-test (vector-fill! '(1 2 3) 0))
;; ---------- vector-empty? ----------
(test #f vector-empty? '#(a))
(test #f vector-empty? '#(()))
(test #f vector-empty? '#(#()))
(test #t vector-empty? '#())
;; ---------- vector-take/drop[-right] ----------
(let ()

View File

@ -1,6 +1,7 @@
#lang racket/base
(provide vector-set*! vector-copy vector-map vector-map! vector-append
(provide vector-empty? vector-set*! vector-copy
vector-map vector-map! vector-append
vector-take vector-drop vector-split-at
vector-take-right vector-drop-right vector-split-at-right
vector-filter vector-filter-not
@ -11,7 +12,12 @@
(for-syntax racket/base)
(rename-in (except-in "private/sort.rkt" sort)
[vector-sort! raw-vector-sort!]
[vector-sort raw-vector-sort]))
[vector-sort raw-vector-sort]))
(define (vector-empty? v)
(unless (vector? v)
(raise-argument-error 'vector-empty? "vector?" v))
(zero? (vector-length v)))
(define (vector-set*! v . pairs)
(unless (even? (length pairs))