Skip to content

an experimental collection of utility functions (sources, combinators, sinks) for working with Go iterators

License

Notifications You must be signed in to change notification settings

jub0bs/iterutil

Repository files navigation

jub0bs/iterutil

tag Go Version Go Reference license build codecov goreport

An experimental collection of utility functions (sources, combinators, sinks) for working with Go iterators.

Installation

go get github.com/jub0bs/iterutil

jub0bs/iterutil requires Go 1.23 or above.

Documentation

The documentation is available on pkg.go.dev.

Code coverage

coverage

License

All source code is covered by the MIT License.

FAQ

What inspired this library?

Can I depend on this library?

You can, but at your own peril. At this early stage, I reserve the right, upon new releases, to break the API: some functions may see their names, signatures, and/or behaviors change, and some functions may be removed altogether.

If you need a few functions from this library but do not want to depend on it, feel free to copy their sources in your project; a little copying is better than a little dependency.

How should I use this library?

Above all, use it with parsimony. Chaining many combinators is far from ideal for several reasons:

  • code readability may suffer, in part because Go's idiosyncracies hinder "fluent chaining" and because Go lacks a concise notation for anonymous functions;
  • a more classic and imperative style is likely to prove more performant;
  • Go lacks the powerful laziness of Haskell.

Bear in mind that the existence of this library is no license to overuse combinator chaining in your codebase!

About

an experimental collection of utility functions (sources, combinators, sinks) for working with Go iterators

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages