Packages

A library for working with lazy lists in Gleam

Current section

Files

Jump to
gleam_zlists src erl interface.gleam
Raw

src/erl/interface.gleam

import erl/zlist
pub type ZList(t) =
zlist.ZList(t)
pub fn new(ls: List(a), f: fn() -> List(t)) -> ZList(t) {
zlist.new(ls, f)
}
pub fn generate(zl: ZList(t), f: fn(t) -> ZList(t1)) -> ZList(t1) {
zlist.generate(zl, f)
}
pub fn recurrent_2(elem: t, f: fn(t) -> t) -> ZList(t) {
zlist.recurrent_2(elem, f)
}
pub fn recurrent_3(
elem: t,
elem_1: t1,
f: fn(t, t1) -> tuple(t, t1),
) -> ZList(t) {
zlist.recurrent_3(elem, elem_1, f)
}
pub fn foreach(f: fn(t) -> any, zl: ZList(t)) -> Nil {
zlist.foreach(f, zl)
}
pub fn foldl(f: fn(t, acc) -> acc, accum: acc, zl: ZList(t)) -> acc {
zlist.foldl(f, accum, zl)
}
pub fn map(f: fn(a) -> b, zl: ZList(a)) -> ZList(b) {
zlist.map(f, zl)
}
pub fn seq(from: Int, to: Int, incr: Int) -> ZList(Int) {
zlist.seq(from, to, incr)
}
pub fn dropwhile(pred: fn(t) -> Bool, zl: ZList(t)) -> ZList(t) {
zlist.dropwhile(pred, zl)
}
pub fn drop(n: Int, zl: ZList(t)) -> ZList(t) {
zlist.drop(n, zl)
}
pub fn takewhile(pred: fn(t) -> Bool, zl: ZList(t)) -> ZList(t) {
zlist.takewhile(pred, zl)
}
pub fn take(n: Int, zl: ZList(t)) -> ZList(t) {
zlist.take(n, zl)
}
pub fn filter(pred: fn(t) -> Bool, zl: ZList(t)) -> ZList(t) {
zlist.filter(pred, zl)
}
pub fn expand(zl: ZList(t)) -> List(t) {
zlist.expand(zl)
}
pub fn append(zlsts: ZList(ZList(t))) -> ZList(t) {
zlist.append(zlsts)
}
pub fn scroll(n: Int, zl: ZList(t)) -> tuple(List(t), ZList(t)) {
zlist.scroll(n, zl)
}
pub fn merge(zl_1: ZList(t), zl_2: ZList(t)) -> ZList(t) {
zlist.merge(zl_1, zl_2)
}
pub fn splitwith(pred: fn(t) -> Bool, zl: ZList(t)) -> tuple(List(t), ZList(t)) {
zlist.splitwith(pred, zl)
}
pub fn cartesian(zl_1: ZList(t), zl_2: ZList(t)) -> ZList(t) {
zlist.cartesian(zl_1, zl_2)
}
pub fn zip(zl_1: ZList(a), zl_2: ZList(b)) -> ZList(tuple(a, b)) {
zlist.zip(zl_1, zl_2)
}
pub fn ziph(zl_1: ZList(a), zl_2: ZList(b)) -> ZList(tuple(a, b)) {
zlist.ziph(zl_1, zl_2)
}
pub fn unique_1(zl: ZList(t)) -> ZList(t) {
zlist.unique_1(zl)
}
pub fn unique_2(pred: fn(t, t) -> Bool, zl: ZList(t)) -> ZList(t) {
zlist.unique_2(pred, zl)
}
pub fn count(zl: ZList(t)) -> Int {
zlist.count(zl)
}
pub fn print(zl: ZList(t)) -> Nil {
zlist.print(zl)
}