方案中列表的返回范围
在方案中,
list-ref 仅返回一个元素。
但我想做
(my-list-operation 0 4 '(1 2 3 4 5 6 7 8 9 10 11 12))
=>; '(1 2 3 4)
有人可以告诉我该怎么做吗?
in scheme,
list-ref returns only one element.
but I want to do like
(my-list-operation 0 4 '(1 2 3 4 5 6 7 8 9 10 11 12))
=> '(1 2 3 4)
could somebody tell me how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我相信在可用的情况下使用现有的高质量库。因此,这个答案使用 SRFI 1 (如果您使用的是 Racket,使用
(require srfi/1)
) 加载它:示例:
I believe in using existing quality libraries where available. So, this answer uses SRFI 1 (if you're using Racket, load it using
(require srfi/1)
):Example:
get-n-items
是一个帮助器,它将 n 个项目附加在一起。slice
接受一个列表、偏移量和计数,并再次循环直到找到起始索引 - 然后从那里返回 n 个项目。(来自我该如何采取方案中列表(子列表)的一部分?)
get-n-items
is a helper, which appends n items together.slice
takes a list, offset and count and again loops until it finds the start index--then returns n items from there.(From How do I take a slice of a list (A sublist) in scheme?)
应该可以做到这一点。
That should do it.
更好的解决方案是:
因为这将通过以下测试:
克里斯的解决方案并未涵盖所有这些场景。
A better solution is:
Since that will pass the following tests:
Chris' solution doesn't cover all of these scenarios.