Я читал SICP и столкнулся с проблемой, в главе 1 есть пример с именем changeing change, мне нужно написать программу в схеме, чтобы рассчитать возможное количество способов сделать изменение любого заданного число, заданное полудолларами, кварталами, копейками, никелями и пенни. В книге показана модель замещения программы, и я попытался изменить ее на гнездовую, но не смог, может ли кто-нибудь оказать мне услугу?count change SICP
(define (count_change total_amount)
(define (denomination kinds_of_coins)
(cond ((= kinds_of_coins 5) 50)
((= kinds_of_coins 4) 25)
((= kinds_of_coins 3) 10)
((= kinds_of_coins 2) 5)
((= kinds_of_coins 1) 1)))
(define (cc amount kinds_of_coins)
(cond (= amount 0) 1)
((or (< amount 0) (= kinds_of_coins 0)) 0)
(else (+ (cc amount (- kinds_of_coins 1))
(cc (- amount (denomination kinds_of_coins)) kinds_of_coins))))
(cc total_amount 5))
результат выполнения заключается в следующем:
;Ill-formed clause: 1
Вы пропустили некоторые круглые скобки - '(cond (= amount 0) 1)' не является допустимым 'cond'. (У вас есть правильный синтаксис в 'denomination'.) – molbdnilo