Closed gordonwatts closed 5 years ago
Now that we have the core of the Where working. Next job is to fit it into the various versions of translators. At the moment it doesn't participate in the Select or SM translation, and thus if we are using tuples, then this just isn't going to work.
.SelectMany(x: f(x)).Where(y: g(y))
=> .SelectMany(x: f(x).Where(y: f(y)))
.Select(x : f(x)).Where(y: g(y))
=> .Where(x: g(f(x))
- But this doesn't work, because we have to make it select and where, or something. Create a new one that does that?Let's explore that last one a little more... Ah! I know. We want Select(x: f(x)).Where(y: g(y))
=> .Where(x: g(f(x))).Select(x: f(x))
- in short we want to move it up to the top of the chain as far as we can. This is going to require multple processing of theWhere.
Ok - lets first implement the Select move, and see how that does.
Add the ability to test for things and limit sequences:
We need to make sure this is also incorporated with the normal reductions. So that is going to be a chunk of work.