View Source ZipZip (ZipZip v0.1.1)

ZipZip

Documentation available on HexDocs.

Packaged on Hex.pm.

A small Elixir functional library for zippers. For now, zippers in ZipZip zip lists and are in two dimensions only.

Note: The internal structure of a zipper should be considered opaque and subject to breaking change. To get or update the current item, traverse the zipper, or perform any other operation on the zipper, use the library's public functions.

References:

Link to this section Summary

Link to this section Types

Specs

t()

Specs

t(val)

Link to this section Functions

Specs

end?(t()) :: boolean()
Link to this macro

is_at_end(zipper)

View Source (macro)
Link to this macro

is_at_start(zipper)

View Source (macro)
Link to this macro

is_out_of_bounds(zipper)

View Source (macro)
Link to this macro

is_zipper(term)

View Source (macro)

Specs

left_items(t()) :: list()

Specs

new([val]) :: t(val) when val: term()

Specs

node(t()) :: term()
Link to this function

put_current(zipper, new_value)

View Source

Specs

put_current(t(), term()) :: t()
Link to this function

replace_at(zipper, index, new_value)

View Source

Specs

replace_at(t(), integer(), term()) :: t()

Specs

right(t()) :: t() | no_return()

Specs

right_items(t()) :: list()

Specs

rightmost(t()) :: term()

Specs

to_list(t()) :: list()

See ZipZip.new/1.

Specs

zipper?(term()) :: boolean()