diff --git a/pkgs/racket-doc/scribblings/reference/numbers.scrbl b/pkgs/racket-doc/scribblings/reference/numbers.scrbl index b2ed670532..5356960894 100644 --- a/pkgs/racket-doc/scribblings/reference/numbers.scrbl +++ b/pkgs/racket-doc/scribblings/reference/numbers.scrbl @@ -1298,6 +1298,9 @@ Returns @racket[#t] if @racket[x] is @racket[+inf.0], @racket[-inf.0], @racket[+ Like @racket[exact-nonnegative-integer?], but also returns @racket[#t] for non-negative @racket[inexact?] integers.} +@defproc[(natural? [x any/c]) boolean?]{ + An alias for @racket[nonnegative-integer?].} + @; ---------------------------------------------------------------------- @close-eval[math-eval] @; ---------------------------------------------------------------------- diff --git a/pkgs/racket-test-core/tests/racket/math.rktl b/pkgs/racket-test-core/tests/racket/math.rktl index ffc52a5129..b1d610cd1a 100644 --- a/pkgs/racket-test-core/tests/racket/math.rktl +++ b/pkgs/racket-test-core/tests/racket/math.rktl @@ -174,6 +174,21 @@ (test #f nonnegative-integer? 0.5) (test #f nonnegative-integer? -5) +;; ========================================================================= +;; natural? + +(test #t natural? 1) +(test #t natural? 1.0) +(test #t natural? 3/3) +(test #t natural? 0) +(test #t natural? -0) +(test #t natural? 0.0) +(test #t natural? -0.0) +(test #f natural? 3/2) +(test #f natural? 0.5) +(test #f natural? -5) + + ;; ========================================================================= ;; sqr diff --git a/racket/collects/racket/math.rkt b/racket/collects/racket/math.rkt index c453e88c81..c3b3e3a746 100644 --- a/racket/collects/racket/math.rkt +++ b/racket/collects/racket/math.rkt @@ -13,6 +13,7 @@ negative-integer? nonpositive-integer? nonnegative-integer? + natural? sqr sgn conjugate sinh cosh tanh @@ -46,6 +47,8 @@ (define (nonnegative-integer? x) (and (integer? x) (not (negative? x)))) + (define natural? nonnegative-integer?) + ;; z^2 (define (sqr z) (unless (number? z) (raise-argument-error 'sqr "number?" z))