diff --git a/core/ArrayExt.carp b/core/ArrayExt.carp index 08692d4c..d915b8f2 100644 --- a/core/ArrayExt.carp +++ b/core/ArrayExt.carp @@ -24,8 +24,8 @@ the input given was wrong, containing an error message.") (set! e (+ e step)))) (Result.Success x)))) - (doc unsafe-range "is an unsafe version of [`range](#range). It returns an -empty array on failure.") - (defn unsafe-range [start end step] + (doc range-or-default "is an unsafe version of [`range](#range). It returns +an empty array on failure.") + (defn range-or-default [start end step] (Result.from-success (range start end step) [])) ) diff --git a/docs/core/Array.html b/docs/core/Array.html index 27266284..87848795 100644 --- a/docs/core/Array.html +++ b/docs/core/Array.html @@ -965,6 +965,27 @@ the input given was wrong, containing an error message.

+
+ +

+ range-or-default +

+
+
+ defn +
+

+ (Fn [a, a, a] (Array a)) +

+
+                    (range-or-default start end step)
+                
+

+

is an unsafe version of `range. It returns +an empty array on failure.

+ +

+

@@ -1480,27 +1501,6 @@ no longer satisfy test. The initial value is start.

-
- -

- unsafe-range -

-
-
- defn -
-

- (Fn [a, a, a] (Array a)) -

-
-                    (unsafe-range start end step)
-                
-

-

is an unsafe version of `range. It returns an -empty array on failure.

- -

-

diff --git a/examples/lambdas.carp b/examples/lambdas.carp index 9fda251d..5dd71b0e 100644 --- a/examples/lambdas.carp +++ b/examples/lambdas.carp @@ -45,7 +45,7 @@ ff2 @&ff1 to-copy @to upper (to-copy)] - (endo-map &(fn [x] (Int.pow x exponent)) (unsafe-range 0 upper 1)))) + (endo-map &(fn [x] (Int.pow x exponent)) (range-or-default 0 upper 1)))) (defn twenty [] 20) diff --git a/test/array.carp b/test/array.carp index 9dd36a0e..dd276455 100644 --- a/test/array.carp +++ b/test/array.carp @@ -14,7 +14,7 @@ (defn make-zero [] 0) (defn make-idx [i] i) -(def a (unsafe-range 0 9 1)) +(def a (range-or-default 0 9 1)) (def b (Array.replicate 5 "Hi")) (deftest test @@ -77,7 +77,7 @@ "maximum works as expected") (assert-ref-equal test (Maybe.Just 1) - (minimum &(unsafe-range 1 10 1)) + (minimum &(range-or-default 1 10 1)) "minimum works as expected") (assert-ref-equal test (Maybe.Just (Pair.init 2 1)) @@ -96,19 +96,19 @@ "index-of works as expected when element is not in the array") (assert-equal test 55 - (sum &(unsafe-range 1 10 1)) + (sum &(range-or-default 1 10 1)) "sum works as expected") (assert-ref-equal test [2 3] - (slice &(unsafe-range 1 10 1) 1 3) + (slice &(range-or-default 1 10 1) 1 3) "slice works as expected") (assert-ref-equal test [1 2 3] - (prefix &(unsafe-range 1 10 1) 3) + (prefix &(range-or-default 1 10 1) 3) "prefix works as expected") (assert-ref-equal test [8 9 10] - (suffix &(unsafe-range 1 10 1) 7) + (suffix &(range-or-default 1 10 1) 7) "suffix works as expected") (assert-nothing test &(nth &a 100) @@ -244,7 +244,7 @@ "Array.pop-back! works as expected")) (assert-ref-equal test [1 2 3 4 5 6 7 8 9] - (sort (unsafe-range 9 1 -1)) + (sort (range-or-default 9 1 -1)) "sort works as expected") (let-do [arr [3 2 5] exp [2 3 5]] @@ -264,23 +264,23 @@ (empty? &[1]) "empty? works as expected II") (assert-true test - (any? &(fn [x] (= 0 @x)) &(unsafe-range 0 10 1)) + (any? &(fn [x] (= 0 @x)) &(range-or-default 0 10 1)) "any? works as expected I") (assert-false test - (any? &(fn [x] (= 0 @x)) &(unsafe-range 1 10 1)) + (any? &(fn [x] (= 0 @x)) &(range-or-default 1 10 1)) "any? works as expected II") (assert-true test - (all? &(fn [x] (< 0 @x)) &(unsafe-range 1 10 1)) + (all? &(fn [x] (< 0 @x)) &(range-or-default 1 10 1)) "all? works as expected I") (assert-false test - (all? &(fn [x] (= 0 @x)) &(unsafe-range 10 1 -1)) + (all? &(fn [x] (= 0 @x)) &(range-or-default 10 1 -1)) "all? works as expected II") (assert-ref-equal test (Maybe.Just 3) - (find &(fn [x] (= 3 @x)) &(unsafe-range 1 10 1)) + (find &(fn [x] (= 3 @x)) &(range-or-default 1 10 1)) "find works as expected I") (assert-nothing test - &(find &(fn [x] (= 0 @x)) &(unsafe-range 1 10 1)) + &(find &(fn [x] (= 0 @x)) &(range-or-default 1 10 1)) "find works as expected II") (assert-nothing test &(find-index &(fn [i] (Int.even? @i)) &[1 3 5]) diff --git a/test/heap.carp b/test/heap.carp index 6eda89c7..d41c332d 100644 --- a/test/heap.carp +++ b/test/heap.carp @@ -224,7 +224,7 @@ ; minimal case from bug #343 (let-do [arr [20 0 10 21 11 1 2 22 12 24 23 13 3 14 4 25 5 15 16 6 17 7 8 18 19 9] - exp (Array.unsafe-range 0 25 1)] + exp (Array.range-or-default 0 25 1)] (Array.sort! &arr) (assert-equal test &exp diff --git a/test/memory.carp b/test/memory.carp index 95d9aa2a..87f8ee2a 100644 --- a/test/memory.carp +++ b/test/memory.carp @@ -284,7 +284,7 @@ (assert (= &[@"c" @"b" @"a"] &xs))))) (defn array-range [] - (let [xs (Array.unsafe-range 0 5 1)] + (let [xs (Array.range-or-default 0 5 1)] (assert (= &[0 1 2 3 4 5] &xs)))) (defmodule ArrayCompareExtension