On Wed, Jul 21, 2004 at 06:25:46AM +0400, Alexey Trofimenko wrote: : some questions: : : 1) is "@a[1][2]{'a'}�b�" interpolateable?
Yes. : and what about "@a[1]('arg')[3]"? I can argue that both ways, but overall it seems like it won't cause much of a problem, and keeps () in the same mental category as [] and {}. So probably yes. : 2) what's the default separator for list interpolation? : "{1,2,3}" eq "123" or : "{1,2,3}" eq "1 2 3" ? Space would be what a Perl 5 programmer would expect, and is often what you want. Though there's also an argument that the default should be "[1,2,3]". But I think we need to force use of a .repr for that. : and is there any way to redefine it, as assigment to perl5 @" does? You mean $", I presume. We had said that the default interpolation separator could be set as a trait of an array. That's a bit of a problem if the array only knows it's being part of a list, and doesn't know that that list is being interpolated. However, maybe we should allow interpolation of a bare @foo if is predeclared with a separator (and maybe we could default to adding brackets the same way). Likewise bare %foo could interpolate if predeclared with a method of writing pairs and separators (and maybe brackets). This is a little like the faulty Perl 4 rule of interpolating arrays only if they'd been used, but in Perl 6 this would only be lexically scoped, since the default would be attached to the array declaration, and that would cause much less confusion than the Perl 4 rule. Alternately, properties on the object itself could be used, but that doesn't help us decide whether to interpolate bare @foo or %bar, or whether to use separators or not. : I can't figure to which object or class that property could belong, so maybe : there should be just lexically scoped pragma... Lexical declarations would most naturally attach to the variable declaration in question, unless you want a pragma to affect all subsequent syntax. But maybe it's just better to huffmanize the code to specify the separator in line. We currently have [EMAIL PROTECTED] ':'} for that, but maybe we can shorten it further. Larry