Lisp 方案-如何修改列表中的单个元素?
如果我有一个0的列表,我将如何修改,例如,列表中的第16个0?您必须自己编写它。它不是内置于Scheme中的,因为它不是惯用的,而且可以从Lisp 方案-如何修改列表中的单个元素?,lisp,list,scheme,Lisp,List,Scheme,如果我有一个0的列表,我将如何修改,例如,列表中的第16个0?您必须自己编写它。它不是内置于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)))) (定义(列表集!l k obj) (续)
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))))
(定义(列表集!l k obj)
(续)
((或(
如果您经常这样做,您可能应该看看如何使用向量和向量集代码>取而代之