README.md

# zipnotic

[![Package Version](https://img.shields.io/hexpm/v/zipnotic)](https://hex.pm/packages/zipnotic)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/zipnotic/)

A grab bag of zip functions.

## Installation

```sh
gleam add zipnotic@1
```

## Usage

```gleam
import gleam/io
import zipnotic

pub fn main() {
  zipnotic.zip_longest_2([1], ["a", "b"]) |> io.debug
  // [#(Some(1), Some("a")), #(None, Some("b"))]

  zipnotic.zip_2([1, 2], ["a"]) |> io.debug
  // [#(1, "a")]

  zipnotic.strict_zip_2([1], ["a"]) |> io.debug
  // Ok([#(1, "a")])

  zipnotic.strict_zip_2([1, 2], ["a"]) |> io.debug
  // Error(Nil)

  zipnotic.zip_longest_3([1], ["a", "b"], [True]) |> io.debug
  // [#(Some(1), Some("a"), Some(True)), #(None, Some("b"), None)]

  zipnotic.zip_3([1], ["a", "b"], [1.0, 1.1]) |> io.debug
  // [#(1, "a", 1.0)]

  zipnotic.strict_zip_3([1], ["a"], [1.0]) |> io.debug
  // Ok([#(1, "a", 1.0)])

  zipnotic.strict_zip_3([1, 2], ["a"], [1.0]) |> io.debug
  // Error(Nil)

  zipnotic.zip_longest_4([1], ["a", "b"], [1.0], [True, False]) |> io.debug
  // [#(Some(1), Some("a"), Some(1.0), Some(True)), #(None, Some("b"), None, Some(False))]

  zipnotic.zip_4([1], ["a", "b"], [1.0], [True, False]) |> io.debug
  // [#(1, "a", 1.0, True)]

  zipnotic.strict_zip_4([1], ["a"], [1.0], [True]) |> io.debug
  // Ok([#(1, "a", 1.0, True)])

  zipnotic.strict_zip_4([1, 2], ["a"], [1.0], [True]) |> io.debug
  // Error(Nil)
}
```