https://issues.dlang.org/show_bug.cgi?id=11252
--- Comment #4 from bearophile_h...@eml.cc --- (In reply to Jonathan M Davis from comment #3) > Honestly though, this seems like an abuse of the in > operator to me. in is really intended for lookup in containers. It's > definitely not a range operation. There's a very nice "in" operator in D, that most other languages miss, and it's quite under-used, mostly for irrational reasons. > in must be no worse than O(log n) or it is inappropriate to use it. And > given how iota works, that can't possibly be done in anything better than > O(n) in the general case, though it would be possible to implement it for > integers specifically. I agree. One solution is to not compile the "in" if the search is slower than O(log n), but it doesn't sound very nice. > A better alternative would be to add find/canFind as a member function to iota Using "in" for ranges like iota is more natural (here "natural" means that it requires the programmer to remember less things) than using find/canFind, but they seem acceptable. --