如果我有一个0的列表,我将如何修改,例如,列表中的第16个?
答案 0 :(得分:3)
你必须自己写。它不是内置于Scheme中,因为它不是惯用的,可以从set-car!
轻松构建。
(define (list-set! l k obj)
(cond
((or (< k 0) (null? l)) #f)
((= k 0) (set-car! l obj))
(else (list-set! (cdr l) (- k 1) obj))))
如果你这么做很多,你应该考虑使用向量和vector-set!
代替。