HaloO, Audrey Tang wrote: > A variant's score cards only records two Boolean values for each > variant: "voting" and "qualified".
Here is a summary of the explanation Audrey gave me on #perl6. Note that this is from memory because I didn't save the log. In particular I don't remember exactly where the intersection of QS and VS was taken. But I hope I understood the algorithm. So, correct me if there is a mistake below. The following assumes a call with \($fido,$fido) # (Dog,Dog) to two multi targets M1 and M2. For each target two sets of methods are maintained: QS (Qualified Set) and VS (Voting Set). The numbers indicate the values after the evaluation of the argument positions. Step 0 is the applicability test. When the sets are the same for M1 and M2 they are listed only once. :(Dog, Animal) # M1 :(Animal, Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS={} VS={M1,M2} Result is ambiguity because of the empty QS. :(Dog; Animal) # M1 :(Animal; Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS={M1} VS={M1} M1 is chosen. Both VS are reduced by M2 which is already disqualified. That is the new VS is the intersection of the old VS and QS. :(Dog; Animal) # M1 :(Animal, Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS1={M1} VS1={M1} QS2={} VS2={M1,M2} Single semicolon is local action on VS of M1. Result is ambiguity because of non-consensus. :(Dog, Animal) # M1 :(Animal; Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS1={} VS1={M1,M2} QS2={M1} VS2={M1} Result is ambiguity because of non-consensus. :(Dog;; Animal) # M1 :(Animal, Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS={} VS={M2} Double semicolon is a global operation to take M1 out of all VS, hence no case distinction. The remaining M2 in VS of step 2 disqualifies M1 and we end up with ambiguity. :(Dog, Animal) # M1 :(Animal;; Dog) # M2 0: QS={M1,M2} VS={M1,M2} 1: QS={M1} VS={M1,M2} 2: QS={M1} VS={M1} This dispatches to M1. Note that the purpose of the VS is to disqualify other methods. Only the methods in QS remain contenders. Regards, TSa. --