无法在 SICP 中 运行 "count-change" 编码
Cann't run "count-change" code in SICP
我正在阅读 SICP,在第一章中提到了如下代码:
#lang scheme
(define (count-change amount)
(cc amount 5))
(define (cc amount kind-of-coins)
(cond ((= amount 0) 1)
((or (< amount 0) (= kind-of-coins 0)) 0)
(else (+ (cc amount
(- kind-of-coins 1))
(cc (- amount
(first-denomination kind-of-coins))
kind-of-coins)))))
(define (first-denomination kinds-of-icons)
(cond ((= kinds-of-icons) 1)
((= kinds-of-icons) 5)
((= kinds-of-icons) 10)
((= kinds-of-icons) 25)
((= kinds-of-icons) 50)))
(count-change 100)
我输入了 DrRacket 的代码,但我无法 运行 成功,我已经尝试了一个小时,不知道哪里出了问题。
您遇到了 first-denominations
的问题,=
需要两个操作数导致了元数错误。所以,它应该看起来像
(define (first-denomination kinds-of-icons)
(cond ((= kinds-of-icons 1) 1)
...)
我正在阅读 SICP,在第一章中提到了如下代码:
#lang scheme
(define (count-change amount)
(cc amount 5))
(define (cc amount kind-of-coins)
(cond ((= amount 0) 1)
((or (< amount 0) (= kind-of-coins 0)) 0)
(else (+ (cc amount
(- kind-of-coins 1))
(cc (- amount
(first-denomination kind-of-coins))
kind-of-coins)))))
(define (first-denomination kinds-of-icons)
(cond ((= kinds-of-icons) 1)
((= kinds-of-icons) 5)
((= kinds-of-icons) 10)
((= kinds-of-icons) 25)
((= kinds-of-icons) 50)))
(count-change 100)
我输入了 DrRacket 的代码,但我无法 运行 成功,我已经尝试了一个小时,不知道哪里出了问题。
您遇到了 first-denominations
的问题,=
需要两个操作数导致了元数错误。所以,它应该看起来像
(define (first-denomination kinds-of-icons)
(cond ((= kinds-of-icons 1) 1)
...)