Scheme 从球拍开始,小问题

Scheme 从球拍开始,小问题,scheme,racket,Scheme,Racket,我从Racket开始,我想显示这个函数的值,它在Racket中添加cons列表的cdr: (define (add-cdrs '((a . 1)(a . 2)(a . 3)(a . 4))) (if (null? l) 0 (+ (cdr(car l))(add-cdrs(cdr l))))) 输出应为:10 但是,我不知道怎么做,也不知道把显示功能放在哪里 谢谢你你把过程定义(在本例中应该声明一个用于保存列表的参数)和过程调用(将实际列表绑定到参数)混淆了。除此之外,你的逻辑

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

(define (add-cdrs '((a . 1)(a . 2)(a . 3)(a . 4)))
(if (null? l)
    0
    (+ (cdr(car l))(add-cdrs(cdr l)))))
输出应为:10

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


谢谢你

你把过程定义(在本例中应该声明一个用于保存列表的参数)和过程调用(将实际列表绑定到参数)混淆了。除此之外,你的逻辑是正确的。试试这个:

(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