procrastination
procrastination copied to clipboard
A small, straightforward library bringing the benefits of functional programming to Java 11
Note safe publication requirement in `Functions::memoize` docs.
[JSpecify](https://jspecify.dev/)? Error Prone? Infer? NullAway?
- https://github.com/hcoles/pitest/issues/284 - https://github.com/pitest/pitest-junit5-plugin - https://4comprehension.com/integrating-pit-mutation-testing-and-github-pages-with-github-actions/ - https://maarten.mulders.it/2020/06/mutation-testing-badge-with-pitest-and-stryker-dashboard/
Would logging from this library be helpful to end users? Can it be done with zero performance cost when logging is disabled, while also allowing end users to plug in...
Implement persistent vector abstract data type using weight-balanced binary trees ([bit mapped vector tries](https://stackoverflow.com/questions/20612729/how-does-scalas-vector-work)? [relaxed radix balanced trees](https://infoscience.epfl.ch/record/169879/files/RMTrees.pdf)?). Implement persistent set and map abstract data types using hash array mapped...
Already got catamorphisms (`foldRight`) and anamorphisms (`unfold`), specialized to `Sequence`. What about hylomorphisms, [paramorphisms](https://en.wikipedia.org/wiki/Paramorphism), apomorphisms, histomorphisms, futumorphisms? First I need to figure out what the hell those are.
Benchmark sequences against streams and imperative loops with JMH on both HotSpot and GraalVM CE (EE?). And benchmark trampolines against imperative implementations of things like `Sequence::length` and `Sequence::foldLeft`. - https://medium.com/graalvm/stream-api-performance-with-graalvm-be6cfe7fbb52
- https://www.gitpod.io/blog/prebuilds/ - https://www.gitpod.io/blog/dev-env-as-code/
Add `Sequence.set()` instance method, complementing `Sequence.list()`. What about `Sequence.queue()`? See #13.