Skip to content

Latest commit

 

History

History
71 lines (38 loc) · 1.5 KB

README.md

File metadata and controls

71 lines (38 loc) · 1.5 KB

Zig itertools

travis zig070

This is an attempt to port the itertools library from python to zig, in order to introduce a functional paradigm to the language. Maintains efficiency by reducing temporary allocations, and moving through slices using an iterator. The library also includes some constructs such as map, filter and reduce which are part of the python builtin library which are essential for functional programming.

And of course, their compile time counterparts!

Suggestions and contributions are welcome.

NOTE: De-initializing the iterator is the responsibility of the user.

Generic Iterator

Iterators

Min

Max

Reduce

Map

Filter

Accumulate

Dropwhile

Filterfalse

Compress

Takewhile

Combinatoric Iterators

Powerset

Permutations

Lexicographically ordered

Efficient: Heap's method

Combinations

Generate from permutations

Twiddle

Product

Note: The library does not support generators yet

Sources

MITx: 6.00.2x

Sedgewick R, Permutation Generation Methods, Princeton University

ctregex by Alex Naskos