Hi Fergal,
Clortex looks very interesting! I notice that you have an implementation of encoders / decoders that is a common requirement of many machine learning solutions (including my own neural network kit - I presented some simple coders and decoders in my talk at the 2012 Conj).
As a result I was thinking of building a multi-function encoder/decoder library using protocols (on top of core.matrix) so that people can avoid re-inventing this particular wheel
At its core there are just two abstractions:
encoder: Arbitrary value -> Vector
decoder: Vector -> Arbitrary value
But then there are higher order abstractions / combinators as well, e.g.
{Map of encoders} -> encoder for maps
[Vector of coders] -> encoder for fixed-length vectors/sequences
"reduce-style" encoder -> encoder for variable-length vectors / sequences
As well as a library of "primitive" codes for Strings, Numbers, Characters etc.
Possibly this could be linked to something like Prismatic's schema for validation / structure definition etc.
Any interest in collaborating on something like this?
Mike.