Thrown if the index does not have an element.
Thrown if the index does not have an element.
Produce the element corresponding to the value of the process at the given index.
Produce the element corresponding to the value of the process at the given index. This method can assume that the indices has already been range checked.
Produce the elements representing the value of the process at the given indices.
Produce the elements representing the value of the process at the given indices. Ensures that any dependencies between the elements are represented. This method must be implemented by implementations of Process. The return value maps each provided index to the corresponding element. This method can assume that the indices has already been range checked.
Produce the elements representing the value of the process at the given indices.
Produce the elements representing the value of the process at the given indices. Ensures that any dependencies between the elements are represented. Also return a new container such that when elements for future indices are produced, any dependencies between those elements and the ones for these indices are represented.
The first return value maps each provided index to the corresponding element. The second return values is the new container.
This method does not assume that the indices have already been range checked.
Check whether the given index has an element.
Check whether the given index has an element.
Returns a new process containing the elements of this process and the argument.
Returns a new process containing the elements of this process and the argument. If an index is defined in both processes, the element of the argument is used.
Get the elements representing the value of the process at the given indices.
Get the elements representing the value of the process at the given indices. Throws IndexOutOfRangeException if any index has no value.
Get an element representing the value of the process at the given index.
Get an element representing the value of the process at the given index. Throws IndexOutOfRangeException if the index has no value.
This apply method is cached, so calling process(index) always returns the same element.
Chain every value in this process through the given function, returning a new process.
Chain every value in this process through the given function, returning a new process.
Chain every value in this process through the given function, returning a new process.
Chain every value in this process through the given function, returning a new process.
Safely get the elements over optional values at all of the indices.
Safely get the elements over optional values at all of the indices. Any index that is not in range will always have value None. Dependencies between elements for indices in range will be produced.
Safely get an element over an optional value at the index.
Safely get an element over an optional value at the index. If the index is in range, the value of the element will be Some(something). If the index is out of range, the value of the element will be None.
Apply the given function to every value in this process, returning a new process.
Apply the given function to every value in this process, returning a new process.
A process in which you can incrementally get the elements at a set of indices, while producing a new process. The new process should take into account any dependencies with elements that have already been generated.