List 将单个元素添加到列表中直到某一点
我想做一个函数,给定一个列表和一个自然数,在列表上加零,使列表的长度等于自然数。这样做的有效方法是什么?不是让每个元素都为零,而是做它应该做的事情List 将单个元素添加到列表中直到某一点,list,recursion,racket,List,Recursion,Racket,我想做一个函数,给定一个列表和一个自然数,在列表上加零,使列表的长度等于自然数。这样做的有效方法是什么?不是让每个元素都为零,而是做它应该做的事情 (define (zero-list loz alon) (cond [(empty? loz) empty] [(= (-(length loz) 1) alon) (cons 0 loz)] [else (cons 0 (zero-list (rest loz)))])) 例如: (零列表(列表1 2 3)5))->
(define (zero-list loz alon)
(cond
[(empty? loz) empty]
[(= (-(length loz) 1) alon) (cons 0 loz)]
[else (cons 0 (zero-list (rest loz)))]))
例如:
(零列表(列表1 2 3)5))->(列表0 0)
so(长度(列表1 2 3))+(长度(列表0))=5用于生成具有适当数量0的列表(即输入列表的数量和长度之间的差):
(define (zero-list l n)
(make-list (- n (length l)) 0))
(zero-list (list 1 2 3) 5) ; -> (list 0 0)