作为参考,我使用Scheme
编译DrRacket
。
我正在尝试使用tally-by-all
和list-of-candidates
函数list-of-votes
在已经定义的辅助函数的帮助下输出list-of-voting-tallies
{ {1}}。
当我按原样运行时,会发生错误,因为辅助函数top-votes-for
会消耗top-votes-for
和string
,因此它无法完全消耗list-of-votes
代替list-of-strings
,至少我是这么认为的。
我应该得到的输出是:
string
请记住,除(cons (make-voting-tally "Blake" 2)
(cons (make-voting-tally "Ash" 0)
(cons (make-voting-tally "Bob" 1)
(cons (make-voting-tally "Will" 0)
(cons (make-voting-tally "Joey" 0) empty))))))
。
非常感谢任何协助。
提前谢谢!
这是我的计划:
tally-by-all
答案 0 :(得分:1)
我认为你想要的是递归候选人名单(aloc
),并且每个人都可以从所有投票计算他/她的记录:
(define (tally-by-all aloc alov)
(cond
[(empty? aloc) empty]
[else (cons (make-voting-tally (first aloc) (top-votes-for (first aloc) alov))
(tally-by-all (rest aloc) alov)))]
)
)