diff --git a/hy/contrib/sequences.hy b/hy/contrib/sequences.hy index 08630ce..703da2b 100644 --- a/hy/contrib/sequences.hy +++ b/hy/contrib/sequences.hy @@ -29,15 +29,15 @@ (try (while True (yield (get self index)) (setv index (inc index))) - (except [_ IndexError] - (raise StopIteration)))) + (except [IndexError] + (return)))) --len-- (fn [self] "length of the sequence, dangerous for infinite sequences" (setv index (. self high-water)) (try (while True (get self index) (setv index (inc index))) - (except [_ IndexError] + (except [IndexError] (len (. self cache))))) max-items-in-repr 10 --str-- (fn [self] diff --git a/hy/core/language.hy b/hy/core/language.hy index d68a237..cda8d0a 100644 --- a/hy/core/language.hy +++ b/hy/core/language.hy @@ -422,7 +422,10 @@ Raises ValueError for (not (pos? n))." (for* [val citer] (yield val) (for* [_ (range skip)] - (next citer)))) + (try + (next citer) + (except [StopIteration] + (return)))))) (defn zero? [n] "Check if `n` equals 0."