好吧,我是一个 Scheme 新手,我现在正在阅读 SICP。我在网站上发现了一个问题。我花了 2 天时间考虑,但仍然不知道你们能帮忙吗?
以下问题:
计算机科学中的一项常见任务是在数据集中查找模式的实例。在这个问题中,您将编写一个过程(find-sublist space sublist),它按顺序返回空间中子列表的所有实例的开始索引的列表。请注意,子列表的实例可能会重叠,如给定 [ ] 的示例之一。如果空间包含列表,则无需像下面的示例 [ *] 中那样在空间的列表中查找子列表。您可以假设子列表不为空。
Examples:
(find-sublist '(7 1 2 3 4 1 2 1 2) '(1 2)) ; should return '(2 6 8)
(find-sublist '(“a” “b” “c” “b” “d”) '(“d”)) ; should return '(5)
(find-sublist '((1 2) (3 4) (5 . 6) 7 #f) '((3 4) (5 . 6))) ; should return '(2)
(find-sublist '(1 1 1 2 1) '(1 1)) ; [*] should return '(1 2)
(find-sublist '(9 1 2 3 (5 1 2 3) 1 2 3) '(1 2 3)) ; [**]should return '(2 6)
(find-sublist '() '(#t #f #f)) ; should return '()