Steffen Mueller > > %hash4 = ("Something", "mixing", pairs => and, "scalars"); > 1 2 3 4 5 > Perl5 says "Odd number of elements in hash assignment at -e line 1." > And Perl6 should, too.
Hmm, I rather like the idea of thinking of a %foo variable as a set, not a map: a map is a set of pairs; with an equivalence class based on the first of the pair. But I'm not sure if that way of thinking can work in Perl6. if %set_of_ints is assigned a set of ints, it should return a list of ints, not a list of pairs. But if it's a map with some DWIM for assignment from lists of ints, then it would return a list of pairs. Perhaps I need declarations like: my %foo is set; # a set: $foo{bar} returns a boolean my %foo is set(int); # set of ints my %foo is hash; #default my %foo is hash(int, any); # hash whose keys must be ints my %foo is hash(string is equiv_class{lc $^a}, any); # case insensitive string keys I've just reviewed A2: it doesn't seem to say much about this stuff. Dave.