2

我需要编写一个代码,该代码将一个元素添加到作为输入的列表中,并返回一个新列表而不是旧列表。之后我将进行递归,我需要新列表……下面的代码工作正常。 .但是我尽量减少所有设置!那是因为让我感到困惑,有时我会犯我无法解决的错误..

没有设置我怎么能做这个操作!? 我只尝试缺点,列出和附加,但他们都没有做这项工作。

(set! list (cons element list))

谢谢..

4

1 回答 1

4

就够(cons element list)了。

您的代码正在更改list变量的内容。我们通常不这样做,在功能样式中,唯一的方法就是set!像你一样使用。

但是要返回新列表,它上面有一个新元素,调用(cons element list)就足够了:

...
(let ((newlist (cons element oldlist)))
  .....
  ..... use newlist and oldlist as needed
于 2013-05-04T14:06:07.177 回答