From 3652d8e10757ca69a52b1fb18e789eb342e8a24c Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 24 Jul 2021 11:21:02 -0600 Subject: [PATCH] make (range) return an Iterable & Iterator --- kiss/src/kiss/Prelude.hx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kiss/src/kiss/Prelude.hx b/kiss/src/kiss/Prelude.hx index 8e316ebb..1f4af8e9 100644 --- a/kiss/src/kiss/Prelude.hx +++ b/kiss/src/kiss/Prelude.hx @@ -239,11 +239,11 @@ class Prelude { } // Ranges with a min, exclusive max, and step size, just like Python. - public static function range(min, max, step):Iterator { + public static function range(min, max, step):Iterator & Iterable { if (step <= 0 || max < min) throw "(range...) can only count up"; var count = min; - return { + var iterator = { next: () -> { var oldCount = count; count += step; @@ -253,6 +253,11 @@ class Prelude { count < max; } }; + return { + iterator: () -> iterator, + next: () -> iterator.next(), + hasNext: () -> iterator.hasNext() + }; } static function _joinPath(parts:Array) {