From 363de5ebd94d6c975d4f232955050d364512d230 Mon Sep 17 00:00:00 2001 From: Gareth Pendleton Date: Thu, 5 Sep 2024 11:50:48 +0100 Subject: make iterator.do_try_fold tail-recursive (#689) Co-authored-by: Gareth Pendleton --- src/gleam/iterator.gleam | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gleam/iterator.gleam b/src/gleam/iterator.gleam index ee38bdc..336c0a1 100644 --- a/src/gleam/iterator.gleam +++ b/src/gleam/iterator.gleam @@ -1467,8 +1467,10 @@ fn do_try_fold( case continuation() { Stop -> Ok(accumulator) Continue(elem, next) -> { - use accumulator <- result.try(f(accumulator, elem)) - do_try_fold(next, f, accumulator) + case f(accumulator, elem) { + Ok(result) -> do_try_fold(next, f, result) + Error(_) as error -> error + } } } } -- cgit v1.2.3