Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Scheme:如何仅删除列表第二级中的元素?_List_Scheme_Nested Lists - Fatal编程技术网

List 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

我受够了

(一)

(二)

但如何解决以下问题:

编写一个Scheme函数,该函数将列表作为参数,并返回与参数列表相同的列表,除非删除了第二个顶级元素。如果给定的列表没有两个元素,则函数应返回()


在这个问题中,我不知道如何禁止递归到第三级,只删除输入列表第二级中的元素

所以我认为你有一个列表
(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我怎么看我的答案与你的问题相符。如果你想知道你在评论中写了什么,你需要编辑你的问题以匹配它。根据描述,你应该删除第二个顶级元素,不管它是什么,除非少于两个元素,在这种情况下,结果是
()
。没有必要重复。