我需要编写一段代码,获取一个元素并添加到作为输入的列表,并返回一个新列表而不是旧列表。之后我将进行递归并且我需要新列表...下面的代码是工作正常..但是我尝试减少所有设置!因为这让我感到困惑,有时我会遇到无法解决的错误..
如何在不设置的情况下执行此操作! ?我只尝试了缺点、列表和附加,但没有一个能完成这项工作。
(set! list (cons element list))
谢谢你..
最佳答案
只需(cons元素列表)
就足够了。
您的代码正在更改 list
变量的内容。我们通常不会以函数式的方式这样做,唯一的方法就是像您一样使用 set!
。
但要返回新列表(其顶部有一个新元素),调用 (cons element list)
就足够了:
...
(let ((newlist (cons element oldlist)))
.....
..... use newlist and oldlist as needed
关于scheme - 在Scheme中使用cons、list、append,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375083/