dwave-hybrid icon indicating copy to clipboard operation
dwave-hybrid copied to clipboard

Support non-bijective mapping with Map

Open randomir opened this issue 5 years ago • 0 comments

Map can easily be generalized to support non-bijective mapping, at least in surjective sense (dropping some outputs).

The same can be achieved with map | filter flow, but sometimes non-emitting the output can be done more easily.

Usage example:

class IncOdd(Runnable):
    def next(self, state):
        if state.number % 2:
            return state.updated(number=state.number + 1)

inp = States(*(State(number=i) for i in range(5)))
out = Map(IncOdd()).run(inp).result()

exp = States(State(number=1), State(number=3))
assert out == exp

randomir avatar Sep 14 '19 00:09 randomir