List Scheme:如何仅删除列表第二级中的元素?
我受够了 (一) (二) 但如何解决以下问题: 编写一个Scheme函数,该函数将列表作为参数,并返回与参数列表相同的列表,除非删除了第二个顶级元素。如果给定的列表没有两个元素,则函数应返回()List Scheme:如何仅删除列表第二级中的元素?,list,scheme,nested-lists,List,Scheme,Nested Lists,我受够了 (一) (二) 但如何解决以下问题: 编写一个Scheme函数,该函数将列表作为参数,并返回与参数列表相同的列表,除非删除了第二个顶级元素。如果给定的列表没有两个元素,则函数应返回() 在这个问题中,我不知道如何禁止递归到第三级,只删除输入列表第二级中的元素 所以我认为你有一个列表(a b c d),其中所有符号都可以是任何东西,甚至是子列表。您的代码需要将其减少到(a c d)。是这样吗 这里有一个提示: (define (remove-2nd lst) (if (or (nul
在这个问题中,我不知道如何禁止递归到第三级,只删除输入列表第二级中的元素 所以我认为你有一个列表
(a b c d)
,其中所有符号都可以是任何东西,甚至是子列表。您的代码需要将其减少到(a c d)
。是这样吗
这里有一个提示:
(define (remove-2nd lst)
(if (or (null? <??>)
(null? <??>))
<??>
(cons <??> <??>)))
(定义(删除第二个lst)
(如果(或(空?)
(空?)
(反对意见)
不是第二个元素,而是第二个级别,例如:从输入中删除第二个级别2
元素(1234)(2345)452)34222)
,它应该返回(1234)(345)345)34222)
只有第二个级别嵌套列表中的2
应该删除,顶级或较低级别(与2相比)中的所有2
keep@jyuan你的问题陈述是“第二个顶级元素”,而不是“第二个级别的元素”。@jyuan我怎么看我的答案与你的问题相符。如果你想知道你在评论中写了什么,你需要编辑你的问题以匹配它。根据描述,你应该删除第二个顶级元素,不管它是什么,除非少于两个元素,在这种情况下,结果是()
。没有必要重复。