Stupid little iota of an idea
spir
denis.spir at gmail.com
Wed Feb 9 04:35:04 PST 2011
On 02/09/2011 04:08 AM, Nick Sabalausky wrote:
> AUIU, foreach has both of these forms:
>
> foreach(x; 0..5)
> foreach(x; someRange)
>
> Also, we have:
>
> auto someRange = iota(0, 5);
>
> Little idea: How about this genralized lowering?
>
> 0..5
> // iota says "Gimme some sugar, baby."
> // and thus it is lowered to ->
> iota(0, 5)
>
> Of course, if that hinders optimization for foreach(x; 0..5), then the
> compiler could just "optimize" that particular case by not bothering with
> the lowering and doing as it currently does.
>
> But the benefit is things like this:
>
> // Stealing Andrei's "filter even" example:
> filter!`a % 2 == 0`(iota(1, 5))
> // Give iota some sugar, baby:
> filter!`a % 2 == 0`(1..5)
>
> I suppose the obnoxious float-literal definition could get in the way, but
> when is it ever legal syntax in D to have two numeric literals next to each
> other? (And foreach seems ok with it anyway)
>
> Pardon if this has already been suggested.
PS: your proposal would also logically allow, I guess, expressions like (n in
min..max). Would love it.
Denis
--
_________________
vita es estrany
spir.wikidot.com
More information about the Digitalmars-d
mailing list