【问题标题】:Returning last element of a list in drracket返回drracket中列表的最后一个元素
【发布时间】:2016-01-30 09:59:23
【问题描述】:

我的计算机科学作业需要帮助。我一直在尝试返回列表的最后一个元素,但一直失败。这是我目前所拥有的:

(check-expect (last empty) "Error! The list is empty!")
(check-expect (last (list "apple" "banana" "pear" "orange")) "orange")

(define (last loe)
  (cond
    [(empty? loe) "Error! The list is empty!"]
    []))

我不知道从这里去哪里。我知道我错过了一个基本案例,但我无法弄清楚。请帮忙!

【问题讨论】:

    标签: list recursion racket element


    【解决方案1】:

    last 过程已经包含在 Racket 中,您不需要实现它。但是,如果您必须从头开始编写它,只需知道 在哪里 停止 - 就在列表结束之前!像这样:

    (define (last loe)
      (cond
        [(empty? loe) "Error! The list is empty!"] ; we don't allow empty lists
        [(empty? (rest loe)) (first loe)]          ; stop right before last
        [else (last (rest loe))]))                 ; advance recursion
    

    【讨论】:

    • 这对我帮助很大!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2013-04-30
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多