| Age | Commit message (Collapse) | Author |
|
Also, add some tests for Context
|
|
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
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NestList is a recursive list structure, inspired by the way lists work
in Rakudo (formerly Perl 6).
|
|
|
|
ReverseListIterator is a ListIterator which iterates over a given list
in reverse, so that next()/prev() are essentially swapped.
|
|
From a conceptual stand-point, this never really made sense.
|
|
This renames several interfaces that had names like IWhatever, since
that isn't a style that Java uses
|
|
|
|
This was some example code I found somewhere that seemed interesting.
|
|
IMap now returns optionals, instead of throwing an exception
|
|
|
|
|
|
This adds some interesting function combinators
|
|
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
|
|
This adds a 'fixpoint' function which allows you to create recursive
lambda functions more easily
|
|
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.
|
|
This gives you an easy way to produce an IHolder, without having to
explicitly construct an instance of Identity
|
|
|
|
|
|
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.
|
|
|
|
IMap has some default methods that its various implementations were
overriding when they didn't need to
|
|
|
|
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
|
|
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.
|
|
This is a list wrapper that automatically tracks the minimum/maximum
element currently in the list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Clean up the tests for BooleanToggle, and add a basic test for Either
|