diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 6eb4a9f9..b198949f 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -1435,7 +1435,7 @@ (defn every? ``Evaluates to the last element of `ind` if all preceding elements are truthy, - otherwise evaluates to the first falsey argument.`` + otherwise evaluates to the first falsey element.`` [ind] (var res true) (loop [x :in ind :while res] @@ -1455,28 +1455,29 @@ `Reverses the order of the elements in a given array or buffer and returns it mutated.` [t] - (def len-1 (- (length t) 1)) - (def half (/ len-1 2)) - (forv i 0 half - (def j (- len-1 i)) - (def l (in t i)) - (def r (in t j)) - (put t i r) - (put t j l)) + (var i 0) + (var j (length t)) + (while (< i (-- j)) + (def ti (in t i)) + (put t i (in t j)) + (put t j ti) + (++ i)) t) (defn reverse `Reverses the order of the elements in a given array or tuple and returns - a new array. If a string or buffer is provided, returns an array of its - byte values, reversed.` + a new array. If a string or buffer is provided, returns a buffer instead.` [t] - (var n (length t)) - (def ret (if (bytes? t) - (buffer/new-filled n) - (array/new-filled n))) - (each v t - (put ret (-- n) v)) - ret) + (if (lengthable? t) + (do + (var n (length t)) + (def ret (if (bytes? t) + (buffer/new-filled n) + (array/new-filled n))) + (each v t + (put ret (-- n) v)) + ret) + (reverse! (seq [v :in t] v)))) (defn invert ``Given an associative data structure `ds`, returns a new table where the