Releases: seborama/fuego
CStream + Tuples + Documentation brush up
The doc has been updated: the README file is more succint while the godoc is more detailed.
Added exploratory CStream - concurrent stream.
Tuple
's have gained a new Map(Function)
method.
Improvements to Stream, Tuples, New Entry types, etc
Added:
-
EntryString.MapToEntryBytes
-
EntryByte
-
Entry comparison utility function EntriesEqual
-
Tuple3
-
Corrections to Collector.GroupingBy finisher
Added to Collector:
- Reducing
- FlatMapping
Added to Stream:
- Limit
- Distinct
- Peek
- ForEachC (concurrent version of ForEach)
Added to Maybe:
- IsEmpty
- Get
- GetOrElse
- OrElse
- Filter
Some refactoring.
FlatMap + documentation updates
Also: code tidy up.
Introduction of collectors i.e. custom stream processors
This release adds a new Collector
type.
It allows the creation of custom stream reductions.
See the README.md file for further details.
I'm also removing the alpha tag from the release as it seems the code and design has reached a degree of maturity now. I will still be making changes and additions but as a continuation of where the code is now (rather than a discontinuation as with in some cases in past releases).
Multiple functional additions and enhancements
This release brings a lot of additional refinement to Stream, in particular:
- EntryFloat
- EntryInt
- EntryMap
- EntrySlice
- EntryString
- Predicate: Xor
- FloatStream
- IntStream
- Function: ToIntFunction
- Stream: improved "stream-liness" and clarity between producers (must close streams) and consumers (must consume but not close streams), , MapToInt, AllMatch, NoneMatch, AnyMatch, Drop, DropWhile, DropUntil, Last, LastN, Head, HeadN, StartsWith, EndsWith, Take, TakeWhile, TakeUntil
Added Stream.Close, Stream.Count, updated Tuple interface
Added Stream.Close, Stream.Count, updated Tuple interface
Focus on core functional aspects
This branch brings major changes to fuego.
The most noticeable are:
- dropped all collections - they are not idiomatic to functional programming and removing them allows to adhere more closely to Go idioms. They are easy to implement: it only takes to add a method to your collection of choice and push its values to a channel and create a NewStream with it.
- dropped iterators - as above
- implemented a more Go-style channel-centric approach to streaming. Parallelism can be achieved in Stream by bueffering the channel.
It is likely that I will leave collections out or split them into a separate repo.
Code robustness improvements
No new features in this release.
Code simplification and robustness
v5.2 Work on code simplification and robustness
Improved README for `Entry` behaviour
v5.1 Updated README for Entry behaviour