On 22/06/10 00:35, Leandro Lucarella wrote:
Andrei Alexandrescu, el 21 de junio a las 17:43 me escribiste:
If efficiency is still sub-par, retro could detect that it's working
with iota and generate specialized code. That's not too difficult;
for integers, retro(iota(a, b)) could actually be a rewrite to
iota(b - 1, a, -1). Figuring out all corner cases, steps greater
than 1, and what to do for floating point numbers is doable but not
trivial either, and works against modularity. Anyway, it does look
like it's all about an implementation matter.
I'm scared, I've heard that in C++ so many times... =)
Writing an efficient library is a complex task. No language will ever
change that.
The beauty of D is that this complexity can be hidden from the user
(unlike in C++ where error messages become increasingly ugly).