From 957b0dd730b16270c6d2b783825b629858571879 Mon Sep 17 00:00:00 2001 From: inoas Date: Mon, 27 Jun 2022 22:59:05 +0200 Subject: naming, attempt to add tests that proof short circuit --- src/gleam/list.gleam | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/gleam/list.gleam b/src/gleam/list.gleam index 3c73a56..38a6607 100644 --- a/src/gleam/list.gleam +++ b/src/gleam/list.gleam @@ -790,19 +790,15 @@ pub fn find_map( pub fn all(in list: List(a), satisfying predicate: fn(a) -> Bool) -> Bool { case list { [] -> True - list -> all_tail_recursive(list, predicate, True) + list -> do_all(list, predicate, True) } } -fn all_tail_recursive( - list: List(a), - predicate: fn(a) -> Bool, - accumulator: Bool, -) -> Bool { +fn do_all(list: List(a), predicate: fn(a) -> Bool, accumulator: Bool) -> Bool { case list { + // _ if accumulator == False -> False [] -> accumulator - [x, ..rest] -> - all_tail_recursive(rest, predicate, accumulator && predicate(x)) + [x, ..rest] -> do_all(rest, predicate, accumulator && predicate(x)) } } @@ -829,20 +825,15 @@ fn all_tail_recursive( pub fn any(in list: List(a), satisfying predicate: fn(a) -> Bool) -> Bool { case list { [] -> False - list -> any_tail_recursive(list, predicate, False) + list -> do_any(list, predicate, False) } } -fn any_tail_recursive( - list: List(a), - predicate: fn(a) -> Bool, - accumulator: Bool, -) -> Bool { +fn do_any(list: List(a), predicate: fn(a) -> Bool, accumulator: Bool) -> Bool { case list { - _ if accumulator == True -> True + // _ if accumulator == True -> True [] -> accumulator - [x, ..rest] -> - any_tail_recursive(rest, predicate, accumulator || predicate(x)) + [x, ..rest] -> do_any(rest, predicate, accumulator || predicate(x)) } } -- cgit v1.2.3