【问题标题】:Starting with Racket, small issue从球拍开始,小问题
【发布时间】:2017-04-06 15:10:17
【问题描述】:

我从 Racket 开始,我想在 Racket 中显示这个添加 cons 列表的 cdrs 的函数的值:

(define (add-cdrs '((a . 1)(a . 2)(a . 3)(a . 4)))
(if (null? l)
    0
    (+ (cdr(car l))(add-cdrs(cdr l)))))

输出应该是:10

但是,我不知道该怎么做,也不知道把显示功能放在哪里。

谢谢

【问题讨论】:

    标签: scheme racket


    【解决方案1】:

    您将过程 definition(在这种情况下应该声明一个用于保存列表的参数)与过程 invocation(绑定实际列表)混淆了到参数)。除此之外,您的逻辑是正确的。试试这个:

    (define (add-cdrs lst)
      (if (null? lst)
          0
          (+ (cdr (car lst)) (add-cdrs (cdr lst)))))
    
    (add-cdrs '((a . 1) (a . 2) (a . 3) (a . 4)))
    => 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2019-05-02
      相关资源
      最近更新 更多