geam-stdlib 0.2.1

Official Gleam standard-library providers for Geam
Documentation
import gleam/set

pub fn main() {
  let base = set.from_list([1, 2, 3, 4])
  let other = set.from_list([3, 4, 5])

  assert set.filter(in: base, keeping: fn(value) { value % 2 == 0 })
    == set.from_list([2, 4])
  let mapped = set.map(base, with: fn(value) { value % 2 })
  assert mapped == set.from_list([0, 1])
  assert set.size(mapped) == 2
  assert set.drop(from: base, drop: [1, 3, 8]) == set.from_list([2, 4])
  assert set.take(from: base, keeping: [1, 3, 8]) == set.from_list([1, 3])

  assert set.union(of: base, and: other) == set.from_list([1, 2, 3, 4, 5])
  assert set.intersection(of: base, and: other) == set.from_list([3, 4])
  assert set.difference(from: base, minus: other) == set.from_list([1, 2])
  assert set.is_subset(set.from_list([1, 2]), of: base)
  assert !set.is_subset(set.from_list([1, 5]), of: base)
  assert set.is_disjoint(set.from_list([1, 2]), from: set.from_list([3, 4]))
  assert !set.is_disjoint(base, from: other)
  assert set.symmetric_difference(of: base, and: other)
    == set.from_list([1, 2, 5])

  assert base == set.from_list([4, 3, 2, 1])
  assert other == set.from_list([5, 4, 3])

  Nil
}
// @geam:expect Nil