Raku의 Baggy — QuantHash를 Baggy 역할로 바꾸기
Raku의 Baggy — QuantHash를 Baggy 역할로 바꾸기
Set, Bag, Mix 같은 양적 해시(QuantHash) 계열 타입은 쓸 때마다 각자의 성격이 조금씩 달라요. Baggy 메서드는 그 객체를 Baggy 역할을 쓰는 동등한 객체로 강제(coerce)해 줘요. 담긴 데이터는 그대로 두고, 표현 방식만 바꾸는 셈이에요.
본문
In role QuantHash
method Baggy(--> Baggy:D)
QuantHash 객체를 Baggy 역할을 사용하는 동등한 객체로 강제해요. 예시를 보면 어떤 일이 일어나는지 금방 보여요.
my %s is Set = <one two>;
say %s.Baggy; # OUTPUT: «Bag(one two)»
my %m is Mix = one => 1, minus => -1;
say %m.Baggy; # OUTPUT: «Bag(one)»
Set였던 %s는 그대로 Bag(one two)로 나와요. 반면 Mix였던 %m은 가중치가 -1인 minus 항목이 사라지고 Bag(one)만 남아요. Baggy 역할에서는 음수 값을 가진 항목이 건너뛰어지기 때문이에요.