Mixy — QuantHash를 Mixy 역할로 바꾸기
Mixy — QuantHash를 Mixy 역할로 바꾸기
Set, Bag, Mix 같은 양적 해시(QuantHash) 계열 타입은 쓸 때마다 각자의 성격이 조금씩 달라요. Mixy 메서드는 그 객체를 Mixy 역할을 쓰는 동등한 객체로 강제(coerce)해 줘요. 담긴 데이터는 그대로 두고, 표현 방식만 바꾸는 셈이에요.
본문
In role QuantHash
method Mixy(--> Mixy:D)
QuantHash 객체를 Mixy 역할을 사용하는 동등한 객체로 강제해요. 예시를 보면 어떤 일이 일어나는지 금방 보여요.
my %s is Set = <one two>;
say %s.Mixy; # OUTPUT: «Mix(one two)»
my %b is Bag = one => 1, two => 2;
say %b.Mixy; # OUTPUT: «Mix(one two(2))»
Set였던 %s는 가중치 개념이 없어서 Mix(one two)처럼 그냥 두 요소로 나오고, Bag였던 %b는 각 항목의 가중치를 그대로 살려 Mix(one two(2))처럼 표현돼요. 데이터는 잃지 않고 역할만 Mixy로 바뀐 걸 확인할 수 있어요.