summaryrefslogtreecommitdiff
path: root/src/main/java/bjc
AgeCommit message (Collapse)Author
2024-07-01Add some missing annotationsBenjamin Culkin
2023-11-08Merge branch 'trunk' of git@ashardalon.com:esodata.git into trunkBen Culkin
2023-10-25TweaksBen Culkin
2023-10-25Tweak for new setupbjculkin
Also, add some tests for Context
2023-06-25Update a number of thingsBen Culkin
2022-10-08Add a whole bunch of OpticsBen Culkin
This adds a whole bunch of types/functions related to optics. With this batch, I've mainly gone for the concrete representation types, instead of var Laarhoven or profunctor representations. The concrete ones require less infrastructure, though they are not as easy to compose There's also a number of misc. things in here
2022-09-27GPLize projectBen Culkin
Finally deciding to move things into a proper license; which I can do since I've never accepted (or had :( ) a pull request from another person
2022-09-24Various changesBen Culkin
2022-09-24Implement basic Petri netsBen Culkin
2022-09-24Add PairMapBen Culkin
2022-09-24Add some additional combinators, of various sortsBen Culkin
2022-09-16Adjust a few thingsBen Culkin
2022-08-16Update iterator capabilitiesBen Culkin
2022-07-26Restructure a bitBen Culkin
2021-03-13Update documentationBen Culkin
2021-03-13Clear up some warningsBen Culkin
2021-02-26UpdateBen Culkin
2020-12-14Implement NestListBen Culkin
NestList is a recursive list structure, inspired by the way lists work in Rakudo (formerly Perl 6).
2020-12-14Add more combinatorsBen Culkin
2020-12-14Add ReverseListIteratorBen Culkin
ReverseListIterator is a ListIterator which iterates over a given list in reverse, so that next()/prev() are essentially swapped.
2020-12-14Either no longer implements PairBen Culkin
From a conceptual stand-point, this never really made sense.
2020-12-03Rename types to match Java styleBen Culkin
This renames several interfaces that had names like IWhatever, since that isn't a style that Java uses
2020-12-01An assortment of changesBen Culkin
2020-11-22Add a 'context' typeBen Culkin
This was some example code I found somewhere that seemed interesting.
2020-11-21Change IMap to use Optional, not exceptionsBen Culkin
IMap now returns optionals, instead of throwing an exception
2020-11-21Add some function combinatorsBen Culkin
This adds some interesting function combinators
2020-11-21Add a functional interface for functions that throw an exception.Ben Culkin
This allows you to be able to throw one type of checked exception from a normal function It also has some methods to allow you to attempt to recover from an exception and hide the fact that it was thrown
2020-11-21Add a basic fixpoint functionBen Culkin
This adds a 'fixpoint' function which allows you to create recursive lambda functions more easily
2020-11-21Add iterators which don't throw ConcurrentModificationExceptionBen Culkin
This adds two iterators (one iterator, one ListIterator) which are guaranteed not to throw a ConcurrentModificationException. The intended use case is allowing you to iterate over a list and modify it at the same time. Note that this will still give odd behavior in the presence of actual concurrency, but that is a deliberate tradeoff.
2020-11-21Add static factory method to IHolderBen Culkin
This gives you an easy way to produce an IHolder, without having to explicitly construct an instance of Identity
2020-11-17Reorder the methods in IMap againBen Culkin
2020-11-17Add static function for constructing IMap more easilyBen Culkin
Added a static function 'of' to IMap to allow you to more easily create a map from a list of key-value pairs. However, misuse of this method can result in getting ClassCastExceptions at some later point, because it has to use Object var-args + an unsafe generic cast. So, be careful, I suppose; and please make sure your argument types are correct.
2020-11-17Add ability to set the source for GeneratingIteratorBen Culkin
2020-11-17Remove some unnecessary overridesBen Culkin
IMap has some default methods that its various implementations were overriding when they didn't need to
2020-11-17Implement IFreezable for IMapBen Culkin
2020-11-16Add interface for freezing/thawing objectsBen Culkin
This adds a new interface IFreezable, which denotes that your object supports being 'frozen' (immutable) or 'thawed' (mutable). There is also optional support for 'deep-freezing' objects, which disables the ability to thaw them. It also introduces a new exception called ObjectFrozen, which implementations of IFreezable may or may not throw when you attempt to modify a frozen object
2020-11-15Add new functional interface for choosing from arraysBen Culkin
Adds two additional function types which make picking a single element from an array of elements easier. Currently, a generic one is provided that works for all reference types, and a variant specialized for primitive ints is also provided.
2020-11-15Add MinMaxList data typeBen Culkin
This is a list wrapper that automatically tracks the minimum/maximum element currently in the list
2020-11-11Merge branch 'master' of https://github.com/bculkin2442/esodataBenjamin J. Culkin
2020-11-11Update?Benjamin J. Culkin
2020-11-11Tweak some thingsBen Culkin
2020-11-09Formatting cleanupBen Culkin
2020-11-08Add some additional testsBen Culkin
2020-11-08Do some cleanup of thingsBen Culkin
2020-10-31Do some restructuring of thingsBen Culkin
2020-10-20Add additional testsBen Culkin
Clean up the tests for BooleanToggle, and add a basic test for Either
2020-10-06Add ResettableIteratorBen Culkin
Adds ResettableIterator, an iterator type which caches the elements it iterates over, so as to allow you to re-iterate over them at your leisure. Note that because this works by caching, it can consume large amounts of memory if used on large iterators. In general, I would suggest only using this on medium-sized or smaller iterators you know you want to re-iterate over.
2020-10-06Info cleanupBen Culkin
2020-09-25Warning cleanupBen Culkin
2020-04-14Cleanup some warnings and stuffBen Culkin