Open
Conversation
Add a method to sequences that takes an evaluation closure and returns an array holding the results of calling that closure for each pair of adjacent elements in order.
Add a type for a sequence that wraps another and caches an evaluation closure, vending the results of calling that closure for each pair of adjacent elements in order. Add a method to lazy sequences that overloads the method to return the differences between adjacent elements, returning instances of the new sequence type.
Augment the sequence type that evaluates its wrapped sequence's deltas to conform to Collection when the wrapped sequence is also a collection.
Add a test to cover all the combinations of forward vs. reverse, whether the first index is the past-the-end value, and whether the second index is the past-the-end value for the index distance method of the sequence/collection that wraps another and vends the deltas between elements.
Add variants of the method for sequences that takes an evaluation closure and returns a lazy sequence holding the results of calling that closure for each pair of adjacent elements in order. These variants lock the closure to an operator or method from a given protocol. The variants use the subtraction, wrapping subtraction, and striding distance operations.
Contributor
|
Is this functionality not adequately served by the existing |
Contributor
|
|
Contributor
Author
Where is " |
Contributor
It doesn't currently exist, but if it did, it would (seemingly?) cover the functionality of this PR. But I'm not familiar with the corresponding C++ function or why they added it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Adds new API for taking a metric function and applying it to each adjacent pair of elements in a sequence, generating a sequence of those results. It's an adaptation of the
adjacent_differencefunction from C++.Detailed Design
Documentation Plan
The methods, types, and the types' properties have block documents. There is also a guide file.
Test Plan
A test file is included.
Source Impact
It adds API.
Checklist