It is a double loop; what's your point? This isn't "come up with the most efficient way to do X", or "do X without using a nested loop", it is (at least so far as I am interested) "show me idiomatic ways to do X". To quote Ovid, "I am wondering how different types of languages would solve the problem of identifying elements in one array that exist in another". I suppose Perl 6 isn't a different type of language than (recent) previous versions of Perl, but I thought the DWIM aspect of the Perl 6 code made the example worth posting.
Sorry if I offended you, but I was under the impression that Ovid wanted to see efficient solutions when he said:
Two 100 element arrays leads to 10,000 iterations. So, how do you solve the scalability issue?
Actually, I was thinking about this some and was wondering whether the following would be valid code in Perl 6:
@intersection = @alphas =~ @betas;
Does anyone know if this will actually work? I looked through the Apocalypses and Exegeses, but I couldn't find any hints of how Perl 6's "smart match" (=~) operator will behave in list context. Unfortunately, searching for "=~" isn't something that search engines make straightforward, so I didn't know how to go about looking elsewhere.
With this more neutral syntax, given the right properties on the arrays involved (e.g. predeclared as "int", and with an is presorted or some such), it may even be possible at compile time to translate some uses of this idiom into efficient, optimized searches instead of the naive, linear default.