aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/ext/iteratorx.gleam
blob: 0ef5d5190bb8a00e2bd6448d0b335bcc8f5b2fdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
import gleam/iterator.{Iterator} as iter

pub fn length(iterator: Iterator(a)) -> Int {
  iterator
  |> iter.fold(from: 0, with: fn(c, _) { c + 1 })
}

pub fn count(iterator: Iterator(a), satisfying predicate: fn(a) -> Bool) -> Int {
  iterator
  |> iter.filter(for: predicate)
  |> length
}