【问题标题】:Dr Racket - Help making a function that adds a new element to a listDr Racket - 帮助制作一个向列表添加新元素的函数
【发布时间】:2014-06-24 21:37:45
【问题描述】:

我需要帮助创建一个将新球添加到现有列表的函数。

Function AddBalls    
AddBalls ListOfBalls -> ListOfBalls  
This function adds one new ball to a list of balls 

(define (AddBall List)
  (...))

(define (AddBall L)
 (cond
 [(empty? L) empty]
 [(cons? L)
  (cons (first L)(AddBall(rest L))])) 

【问题讨论】:

标签: list recursion racket


【解决方案1】:

所以我不知道球拍中的球是什么,但你可以很容易地将任何元素添加到列表中。所以基本上添加到前面是最简单的:

(define my-list '(2 3 4))
(define my-new-list (cons 1 my-list))

执行此操作的过程:

(define (add-list e lst)
  (cons e lst))

但请注意,它就像 cons 的参数顺序相同,因此您可以这样做:

(define add-list cons)
(add-list 1 '(2 3 4)) ; ==> (1 2 3 4)

那么如果你想添加到列表的末尾呢?我会使用附加:

(define (add-last lst el)
  (append lst (list el)))

(add-last '(1 2 3) 4) ; ==> (1 2 3 4)

支持添加到末尾的任何元素:

(define (add-last lst . els)
  (append lst els))

(add-last '(1 2 3) 4 5 6 7) ; ==> (1 2 3 4 5 6 7)

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2022-08-11
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多