Super-dee-duper D features
Bill Baxter
dnewsgroup at billbaxter.com
Wed Feb 14 10:48:42 PST 2007
Andrei Alexandrescu (See Website For Email) wrote:
> Bill Baxter wrote:
>> Andrei Alexandrescu (See Website For Email) wrote:
>>> Bill Baxter wrote:
>>>> Andrei Alexandrescu (See Website For Email) wrote:
>>>>
>>>>
>>>>> I'm actually mildly surprised. Lately there was some talk around
>>>>> here about supporting the day-to-day programmers and so on. I find
>>>>> looping a very day-to-day thing, and looping over 2+ things at
>>>>> least a few-days-to-few-days thing. There is a need for parallel
>>>>> iteration, if nothing else shown by the existence of a library that
>>>>> addresses exactly that - to the extent possible in a library that's
>>>>> not in the position to control syntax, scoping, and visibility. I
>>>>> was sure people will be on this one like white on rice. But Bjarne
>>>>> Stroustrup was right: nobody knows what most programmers do :o).
>>>>
>>>> Python and Ruby are hardly considered to be obtuse languages, or
>>>> unfriendly to Joe coder, but both get by just fine without special
>>>> case syntax for iterating over multiple collections, or for
>>>> iterating in reverse.
>>>> for x,y izip(foo,bar):
>>>> do stuff
>>>>
>>>> for x reversed(foo):
>>>> do stuff
>>>>
>>>> for x,y izip(reversed(foo),bar):
>>>> do that with your proposal!
>>>
>>> foreach (x ; reverse_view(foo)) (y ; bar)
>>> probably I could!
>>
>> foreach (x,y ; transpose_view(reverse_view(foo),bar)
>> then why not this too?!
>
> Because it doesn't keep bound variables together with the data. Perl has
> a way of initializing multiple variables that is unnerving:
>
> my ($a, $b, $c) = (e1, e2, e3);
>
> The long-distance relationships make it so irritating when ek are more
> than a couple of characters, I often give up and write:
>
> my $a = e1;
> my $b = e2;
> my $c = e3;
>
> even though I try to use vertical space sparingly.
You're of course welcome to your opinion, but multiple assignment exists
in many languages. So you're saying they're all wrong to have such a
feature?
--bb
More information about the Digitalmars-d
mailing list