我需要编写一个代码,它接受一个元素并添加到列表中作为输入,并返回一个新列表而不是旧列表..之后我会做recurssion并且我需要新列表...下面的代码是工作正常..但是我试着减少所有设置!那是因为混淆了我,有时我接受了我无法解决的错误..
如何在没有设置的情况下执行此操作! ?我只是尝试一下,列出并追加,但没有人做这个工作。
(set! list (cons element list))
谢谢..
答案 0 :(得分:4)
只需(cons element list)
即可。
您的代码正在更改list
变量的内容。我们通常不会以功能样式执行此操作,唯一的方法是使用set!
。
但是要返回新列表,其上面有一个新元素,调用(cons element list)
就足够了:
...
(let ((newlist (cons element oldlist)))
.....
..... use newlist and oldlist as needed