On Saturday, 28 December 2013 at 19:22:25 UTC, Francesco Cattoglio wrote:
On Saturday, 28 December 2013 at 16:13:45 UTC, Jakob Ovrum wrote:
Alright, so require division for bidirectionality when given a custom step. There's no reason division should be required for bidirectionality in the most common case of iota(start, end).

Ok, now I finally get your point. It goes something along the lines of: "if no step is provided, then we can assume end can be reached by just stepping forward (incrementing by one)". It makes sense, but personally I don't like to make assumptions. I think assumptions in library code are one of the worst sources of nasty bugs in user code.

As long as `start < end` is true in the beginning, that's a perfectly reasonable assumption to make, especially if "end can be reached" means `start >= end` is true after some `n` number of increments.

If we can't make any assumptions about the chosen concept primitives then they're no good as primitives at all.

Reply via email to