简单的方案问题
我如何从给定的数据库中找到列表? 数据库:
(10 math phys)
(11 math chem)
(13 bio chem)
(15 geo phys)
我想实现time
,它在列表中显示第一个和第二个考试。
>(time ’10)
(list ‘math ‘phys)
>(time ’19)
empty
我想实现 SecondExams 来返回第二次考试的时间。
>(secondExams ‘phys)
(list ‘10 ’15)
>(secondExams ‘chem)
(list ’11 ’13)
谢谢
how can I find a list from given database??
Database:
(10 math phys)
(11 math chem)
(13 bio chem)
(15 geo phys)
I want to implement time
which shows the first and second exams in a list.
>(time ’10)
(list ‘math ‘phys)
>(time ’19)
empty
And I want to implement secondExams
which returns the time of second exams.
>(secondExams ‘phys)
(list ‘10 ’15)
>(secondExams ‘chem)
(list ’11 ’13)
thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,让我们澄清一下您的数据库格式。使其成为列表的列表:
然后 time 只需递归地遍历列表,并将子列表的第一个元素与目标值进行比较。如果我们找不到匹配的值,我们将返回空列表。我们将在帮助程序中执行此操作,以匹配您正在寻求的功能。
然后我们可以为 secondaryExams 做一些非常类似的事情。只不过这次我们将递归地构建一个匹配列表。
我还没有测试过这段代码,但我很确定它对你有用。
First, let's clarify your database format. Make it a list of lists:
Then time just needs to step through your list recursively, and compare the first element of the sub-list with your target value. If we find no matching value, we'll return the empty list. We'll do this in a helper procedure to match the functionality you're precisely seeking.
Then we can do something very similar for secondExams. Except we'll recursively build a list of matches this time.
I haven't tested this code, but I'm pretty sure it'll work for you.