diff --git a/.gitignore b/.gitignore index cd4354b..c09d4fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -target/ +target +_build .mooncakes/ diff --git a/src/list.mbt b/src/list.mbt index ccff616..82a3f9f 100644 --- a/src/list.mbt +++ b/src/list.mbt @@ -81,13 +81,12 @@ pub fn EdnListView::push(self : EdnListView, x : Edn) -> Unit { ///| /// implement iterator for EdnListView pub fn EdnListView::iter(self : EdnListView) -> Iter[Edn] { - Iter::new(fn(yielding) { - for i = 0; i < self.0.length(); i = i + 1 { - if yielding(self.0[i]) == IterEnd { - break IterEnd - } - } else { - IterContinue - } - }) + let mut i = 0 + Iterator::new(() => if i < self.0.length() { + let val = self.0[i] + i = i + 1 + Some(val) + } else { + None + }).iter() }