diff --git a/deliberate.scm b/deliberate.scm index 37d74fc..2ba3863 100644 --- a/deliberate.scm +++ b/deliberate.scm @@ -211,8 +211,13 @@ ;; A reordered copy of lst ;; (define (reorder lst ranks) - (let ((pairs (zip lst ranks))) - (map car (sort pairs (lambda (a b) (< (cadr a) (cadr b))))))) + (let* ((pairs (zip lst ranks)) + (ranked-pairs + (filter (lambda (pair) (not (eq? #f (cadr pair)))) + pairs)) + (sorted-pairs + (sort ranked-pairs (lambda (a b) (< (cadr a) (cadr b)))))) + (map car sorted-pairs))) diff --git a/test-deliberate.scm b/test-deliberate.scm index 7ed0db0..540c39a 100644 --- a/test-deliberate.scm +++ b/test-deliberate.scm @@ -12,5 +12,5 @@ (define vote (a-run (spawn ^ranked-choice-vote delib ($ delib 'debug-alternatives)))) (define ballot (a-run ($ vote 'add-ballot))) -(define (rank312 alts) '(3 1 2)) -(a-run ($ ballot 'update-vote rank312)) +(define (rank31f alts) '(3 1 #f)) +(a-run ($ ballot 'update-vote rank31f))