額面と金額のリストを指定して、スキームを変更する方法の数をカウントする関数を作成しています。私のコードは次のとおりですが、意図したとおりに動作しません。+ 演算子の代わりに cons を使用する必要がありますか? 下の 3 行目の基本ケースは空のリストにする必要がありますか?
(define (change k l)
(cond ((= k 0) 1)
((or (< k 0) (null? l)) 0)
(else (+ (change k (cdr l))
(change (- k (car l))
(cdr l))))))
テスト:
(change 11 (list 1 5 10 25))