Я изучаю Ракетки для понимания принципов языков программирования. Что я делаю, так это добавляю только вторые элементы в пары списка. В моем понимании, я думаю, что я делаю правильно. Однако появляется сообщение об ошибке. Пожалуйста, дайте мне любой совет, чтобы понять, что я делаю неправильно.
(define pairs
'((1 5)(6 4)(7 8)(15 10)))
(define (secondSum lst)
(if (null? lst) 0
(+ (cdr (car lst)) (secondSum (cdr lst)))
)
)
>(secondSum pairs)
+: contract violation
expected: number?
given: '()
argument position: 2nd
other arguments...:
10
Я ищу
(5 + 4 + 8 + 10)