Darren Duncan wrote:
> pugs-comm...@feather.perl6.nl wrote:
>>
>> Log:
>> [S02] clarify that Pairs and Mappings are mutable in value, but not in key
>
>
>>
>> KeyHash Perl hash that autodeletes values matching default
>> KeySet KeyHash of Bool (does Set in list/array context)
>> KeyBag KeyHash of UInt (does Bag in list/array context)
>> +PairA single key-to-value association
>> +Mapping Set of Pairs with no duplicate keys
>
>
>>
>> +As with C types, C and C are mutable in their
>> +values but not in their keys. (A key can be a reference to a mutable
>> +object, but cannot change its C<.WHICH> identity. In contrast,
>> +the value may be rebound to a different object, just as a hash
>> +element may.)
>
> Following this change, it looks to me like Mapping is exactly the same as
> Hash. So under what circumstances should one now choose whether they want
> to use a Hash or a Mapping? How do they still differ? -- Darren Duncan
I don't think they do. IMHO, Mapping should definitely be immutable
in both key and value; it is to Hash as Seq is to Array. (Side note:
why is List considered to be immutable? Doesn't it change whenever
its iterator is read?)
The question in my mind has to do with Pair: if Pair is being
redefined as mutable in value, should it have an immutable
counterpart? If so, what should said counterpart be called?
--
Jonathan "Dataweaver" Lang