list - 使用 Racket append 到列表变量

标签 list scheme append racket

我想使用 Racket 将一个整数添加到一个已经存在的列表中。 这是我到目前为止的代码。

(define (countBlackPegs gameList playerList)
(define blackPegs '())

(if (equal? (car playerList) (car gameList)) 
  (set! blackPegs '(1))
;;otherwise
  (set! blackPegs '(0)))
)

理论上,我应该能够重复 if 语句(每次检查列表的不同部分),然后根据 if 语句的结果为 blackPegs 列表 append 适当的值。不幸的是,我尝试过的每个追加函数都不能正常工作。任何帮助将不胜感激。

最佳答案

如果你想修改(使用 set!)一个已经存在的列表,按照这些行做一些事情,在开头添加一个新元素:

(set! blackPegs (cons 1 blackPegs))

或者在末尾添加一个新元素:

(set! blackPegs (append blackPegs (list 1)))

但是,请注意,在 Scheme 中不推荐这种编程风格,您应该尽量避免改变变量 - 函数式编程风格是首选。

关于list - 使用 Racket append 到列表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538494/

相关文章:

java - 为什么迭代列表给我 stackoverflow 错误?

scheme - map和apply in scheme有什么区别?

function - append 到函数 lua

scheme - 顶级列表中所有数字的总和

macros - 如何在 lisp 中用 if 形式定义递归 cond 宏?

JQUERY append 元素在 ajax 成功后不会自行切换

javascript - Instagram API - 使用 jquery 获取图像

Python 两个列表之间的多重条件

python - 如何使用列表在数据框中制作文字云?

swift - 解码 RealmSwift 类中的可选对象列表