-
Notifications
You must be signed in to change notification settings - Fork 440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deltas #45
base: main
Are you sure you want to change the base?
Deltas #45
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.
Is this functionality not adequately served by the existing |
|
Where is " |
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. |
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_difference
function 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