Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lisp 方案-如何修改列表中的单个元素?_Lisp_List_Scheme - Fatal编程技术网

Lisp 方案-如何修改列表中的单个元素?

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) (续)

如果我有一个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)
(续)
((或(
如果您经常这样做,您可能应该看看如何使用向量和
向量集取而代之