Mon Aug 29 15:08:19 EDT 2016
Streams vs. coordinates (transposes)
Transposes are easy to express as operations on coordinates.
Compositions of transposes then become compositions of functions.
I wonder if it is possible to do the same kind of transformation on a
stream of data?
E.g. by caching the "block" coordinate.
1. Compute output stream as a stream of highlevel coordinates.
2. Convert these coordinates to physical coordinates
3. Memoize the reads
4. For monotonous input, output is monotonous and it can be implemented using a one-way reader.
Clever, but nothing new -- links in to Feldspar's basic idea.
This needs to sink in for a bit. Properties used to advantage:
- monotinicity in -> monotonicity out (means random access is not
needed, streaming + caching works)
- composition of coordinate-processing functions is *much* simpler
and easier to express easier than composition of functions
containing loops that move bytes around.