Scheme 计算项目在方案的结构化列表中出现的次数
作为参考,我正在使用Scheme 计算项目在方案的结构化列表中出现的次数,scheme,structure,racket,Scheme,Structure,Racket,作为参考,我正在使用DrRacket在Scheme中编程 我试图计算一个名字(字符串)在选票列表中作为第一选择的次数,但似乎无法计算出来 在某种情况下 一票由一人投票的三名候选人的姓名组成。这被定义为结构:(定义结构投票(choice1 choice2 choice3)) top Voces for函数应该使用一个名称和一个投票列表,并生成给定名称作为投票列表中第一选择投票的次数 这是我的代码(注意定义不正确): 提前谢谢你 您对最高投票数的定义是错误的。下面是一个已更正解决方案的框架版本: (
DrRacket
在Scheme
中编程
我试图计算一个名字(字符串)在选票列表中作为第一选择的次数,但似乎无法计算出来
在某种情况下
一票由一人投票的三名候选人的姓名组成。这被定义为结构:(定义结构投票(choice1 choice2 choice3))
top Voces for函数应该使用一个名称和一个投票列表,并生成给定名称作为投票列表中第一选择投票的次数
这是我的代码(注意定义不正确):
提前谢谢你 您对最高投票数的定义是错误的。下面是一个已更正解决方案的框架版本:
(define (top-votes-for cand alov)
(cond ((empty? alov) 0)
((string=? (vote-choice1 <???>) cand)
(add1 <???>))
(else (top-votes-for cand (rest alov)))))
(定义(cand alov的最高投票数)
(条件((空?alov)0)
((字符串=?(投票选择1)C)
(增补1)
(其他(cand的最高票数(其余为‘‘‘‘)’))
事实上,我已经给了你大部分的解决方案。如果你理解上面的代码,剩下的部分应该很容易理解。我认为“cand”和“alov”适合这些???部分(按顺序),但似乎不是这样@克丽丝更努力地思考。提示:每个
都是一个完整的表达式,而不仅仅是一个变量。第一个有形状()
,第二个有形状(())
.Hmm。第一个肯定是(vote-choice1(first-alov))cand)
我想,但我不太确定第二个。也许是类似于(添加1张最高票数(其余为alov))
@Chris@ChrisJester@ChrisJester Youngre是第一个
。至于第二个,为什么要调用add1
两次?考虑一下你要添加1的内容。提示:想想在else
案例中发生了什么,然后想想在string=?
案例中你做了什么不同。啊,好吧,所以应该是(add1(cand的最高投票数(rest alov))
。好吧,至少我的支票是正确的。谢谢你的帮助@克里斯@ChrisJester@ChrisJester-Young
(define (top-votes-for cand alov)
(cond ((empty? alov) 0)
((string=? (vote-choice1 <???>) cand)
(add1 <???>))
(else (top-votes-for cand (rest alov)))))