On 06/17/13 16:20, bearophile wrote: > Artur Skawina: > >> Yes, this is not as concise as '...' would be. But, with a bit more tuple >> support in the language, the '.tuple' part wouldn't be >> necessary, > > Implicit things are dangerous in languages.
Not sure what you mean. "A bit more tuple support" means aot being able to return /real/ tuples from functions. This just needs to be specced; can be handled like I did in the ForEach example - by wrapping it in a struct, only internally. Then this becomes possible: auto ForEach(alias MAP, TS...)(TS ts) { NTup!(TS.length, typeof(MAP(TS[0].init))) tuple; foreach (i, ref v; values) tuple[i] = MAP(v); return tuple; } void bar(T...)(T values) { foo(ForEach!(a=>arr[a]*10)(values)); } which is already much more readable. And 100% explicit. While /it's only syntax sugar/, it does remove a lot of noise. > ".tuple" can also be written "[]". No idea what you mean by this. artur