scheme - 在Scheme中使用cons、list、append

标签 scheme racket

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

如何在不设置的情况下执行此操作! ?我只尝试了缺点、列表和附加,但没有一个能完成这项工作。

(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/

相关文章:

lambda - ((lambda () )) 的简写

scheme - 如何将一个列表变成多个返回值?

web-applications - 有没有办法让 Racket Web 应用程序中的按钮调用文件中定义的函数?

clojure - Lisp 家族 : how to escape object-oriented java-like thinking?

emacs - Racket 模式 : Can I evaluate a single form within a given namespace at the REPL?

haskell - 为什么给 Haskell 添加宏比给 Scheme 更难

clojure - 无参数(和)返回 t

scheme - 反向列表 - 方案

scheme - 申请申请Scheme

algorithm - Racket - 切割 din Ax 的算法