API experiment: lambda grouper based on sliding window #3101
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.
related #3066, #414, looking for an expressive, flexible
way of splitting frames into multiple frames based on
predicate functions.
Not optimized, just trying it out.
of the sliding window
offset
kwd determines window offsetrelative to current element.
fill
kwd determines the value providedto the predicate instead of "phantom" locations when the window
slides past the edge of of array.
The predicate function also gets a
_
variable injected into it'scontext, which intially 0, and is updated after each call with the value
just returned. That is,
_
holds the "group label of the previous item.By updating the value as we go along we can always compute the
label for the "next" group. Somewhat like
reduce
#3066 was prompted by this SO question
Note how concise doing that is, using this idiom (much more complex
splitting is easy as well):