我已经完成了
1)delete element for the top-level of a list
2)delete element for a nested list no matter how deep the list is.
但如何解决以下问题:
编写一个Scheme函数,该函数将列表作为参数并返回与参数列表相同的列表,除非删除了第二个顶级元素。如果给定列表没有两个元素,则该函数应返回()。
在这个问题中,我不知道如何禁止递归到第3级,只删除输入列表第2级的元素。
答案 0 :(得分:1)
所以我认为你有一个列表(a b c d)
,其中所有符号都可以是任何符号,甚至是子列表。您的代码需要将其减少到(a c d)
。是吗?
这是一个提示:
(define (remove-2nd lst)
(if (or (null? <??>)
(null? <??>))
<??>
(cons <??> <??>)))