【问题标题】:Adding a single element onto a list until a certain point将单个元素添加到列表中直到某个点
【发布时间】:2020-02-17 01:40:26
【问题描述】:

我想创建一个给定列表和自然数的函数,将零添加到列表中,以便列表的长度等于自然数。这样做的有效方法是什么,而不是让每个元素都为零,而是做它应该做的事情

(define (zero-list loz alon)
  (cond
    [(empty? loz) empty]
    [(= (-(length loz) 1) alon) (cons 0 loz)]
    [else (cons 0 (zero-list (rest loz)))]))

示例: (zero-list (list 1 2 3) 5)) -> (list 0 0) so (length (list 1 2 3)) + (length (list 0 0)) = 5

【问题讨论】:

    标签: list recursion racket


    【解决方案1】:

    使用make-list 生成具有适当数量0的列表(即输入列表的数量和长度之间的差异):

    (define (zero-list l n) 
      (make-list (- n (length l)) 0))
    
    (zero-list (list 1 2 3) 5) ; -> (list 0 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多