diff --git a/app.scm b/app.scm index 6d901d6..6f2f07f 100644 --- a/app.scm +++ b/app.scm @@ -160,12 +160,12 @@ (> (alist-ref 's x1) (alist-ref 's x2))))) (score companies investors))) -;; find best match and return unmatched combinations +;; greedily find best match and return unmatched combinations (define (match/remainder taken ranks) (let ((mtch (find (lambda (x) (not (memq (alist-ref 'i x) taken))) ranks))) (receive (head tail) (span (lambda (x) (not (eq? x mtch))) ranks) (if (null? tail) - (values #f head) + (values #f head) ; no match found (values (car tail) (append head (cdr tail))))))) (define (allocate-round ranks)