zipnotic

Functions

pub fn strict_zip_2(
  list: List(a),
  other: List(b),
) -> Result(List(#(a, b)), Nil)

Zips two lists into a result. If the lists are all equal in length, a list of tuples is returned within Ok. If the lists are not the same length, Error(Nil) is returned.

strict_zip_2([1], ["a"])
// -> Ok([#(1, "a")])
strict_zip_2([1, 2], ["a"])
// -> Error(Nil)
pub fn strict_zip_3(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
) -> Result(List(#(a, b, c)), Nil)

Zips three lists into a result. If the lists are all equal in length, a list of tuples is returned within Ok. If the lists are not the same length, Error(Nil) is returned.

strict_zip_3([1], ["a"], [1.0])
// -> Ok([#(1, "a", 1.0)])
strict_zip_3([1, 2], ["a"], [1.0])
// -> Error(Nil)
pub fn strict_zip_4(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
  other_3: List(d),
) -> Result(List(#(a, b, c, d)), Nil)

Zips four lists into a result. If the lists are all equal in length, a list of tuples is returned within Ok. If the lists are not the same length, Error(Nil) is returned.

strict_zip_4([1], ["a"], [1.0], [True])
// -> Ok([#(1, "a", 1.0, True)])
strict_zip_4([1, 2], ["a"], [1.0], [True])
// -> Error(Nil)
pub fn zip_2(list: List(a), other: List(b)) -> List(#(a, b))

Zips two lists into tuples of values. Zipping ends when the shortest list is exhausted.

zip_2([1, 2], ["a"])
// -> [#(1, "a")]
pub fn zip_3(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
) -> List(#(a, b, c))

Zips three lists into tuples of values. Zipping ends when the shortest list is exhausted.

zip_3([1], ["a", "b"], [1.0, 1.1])
// -> [#(1, "a", 1.0)]
pub fn zip_4(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
  other_3: List(d),
) -> List(#(a, b, c, d))

Zips four lists into tuples of values. Zipping ends when the shortest list is exhausted.

zip_4([1], ["a", "b"], [1.0], [True, False])
// -> [#(1, "a", 1.0, True)]
pub fn zip_longest_2(
  list: List(a),
  other: List(b),
) -> List(#(Option(a), Option(b)))

Zips two lists into tuples containing optional values. Zipping ends when all lists are exhausted.

zip_longest_2([1], ["a", "b"])
// -> [#(Some(1), Some("a")), #(None, Some("b"))]
pub fn zip_longest_3(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
) -> List(#(Option(a), Option(b), Option(c)))

Zips three lists into tuples containing optional values. Zipping ends when all lists are exhausted.

zip_longest_3([1], ["a", "b"], [True])
// -> [#(Some(1), Some("a"), Some(True)), #(None, Some("b"), None)]
pub fn zip_longest_4(
  list: List(a),
  other_1: List(b),
  other_2: List(c),
  other_3: List(d),
) -> List(#(Option(a), Option(b), Option(c), Option(d)))

Zips four lists into tuples containing optional values. Zipping ends when all lists are exhausted.

zip_longest_4([1], ["a", "b"], [1.0], [True, False])
// -> [#(Some(1), Some("a"), Some(1.0), Some(True)), #(None, Some("b"), None, Some(False))]
Search Document