WIP: Implementation of window functions. #70
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As per @spencerlyon2's request in #66 I implemented some basic windowing functionality. I aimed for generality and memory efficiency (so that you could easily iterate through a large table without having to load the whole thing into memory) but I could really use some feedback on what kind of API/functionality is actually needed.
Essentially you provide it with a callback taking an array of
Any
arrays (the current window), the range that was used to create the window and an arbitrary third value (which is used to pass data through the function). This callback should return a value for that window and these are all concatenated together.See below for a rather contrived example.