我想使用 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/