This is for
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
The algorithm is (men ~ patterns, women ~ terms):
while ∃ free man m who still has a woman w to propose to { w = first woman on m’s list to whom m has not yet proposed if w is free (m, w) become engaged else some pair (m', w) already exists if w prefers m to m' m' becomes free (m, w) become engaged else (m', w) remain engaged
This assumes that there are M patterns and N terms and that M = N.
If M < N, there will not be a match unless there is a wildcard or a remainder (see their sections below) and we should short-circuit unless there is one.
...
Is basically for free. We just run the algorithm for M (#patterns) <= N (#terms) and declare the result a match iff all patterns have a term assigned and there's at least one wildcard in the pattern list. E.g.
Code Block |
---|
{ 1 | 2 | 3 } matches { 2 | _ | 1 | _ } |
is matching N = 3 terms to a pattern list of M = 2 patterns and K = 2 wildcards, and the match will be successful.
...