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

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

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


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

最佳答案

如果要修改(使用set!)一个已经存在的列表,请按照以下步骤进行操作,以在开头添加新元素:

(set! blackPegs (cons 1 blackPegs))


或在末尾添加新元素:

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


但是,请注意,在Scheme中不建议使用这种编程风格,您应尽量避免突变变量-首选函数式编程风格。

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

10-09 08:33