サブセット合計の問題を解決するのに役立つ 2 つの関数を作成しました。私はエラーが発生しているようです。に 2 つの引数を渡していることがわかりますlist-sum
。私はこのプログラムを数時間いじっています。誰かが問題を見つけることができるかどうか疑問に思っていました。
これは私のlist-sum
です:
(define list-sum
(lambda(lst)
(cond
((null? lst) 0)
((pair? (car lst))
(+(list-sum (car lst)) (list-sum (cdr lst))))
(else
(+ (car lst) (list-sum (cdr lst)))))))
これは、使用する私の関数ですlist-sum
:
(define ssum
(lambda (n l)
(cond
((null? l) #f)
((=(-(- n (car l))(list-sum l)) 0) l)
((ssum (cons (car l)) (cdr (cdr l))))
(else (ssum n (cdr l))))))
1 つの引数で「compound-procedure #(number) ssum」を呼び出したこと、および 2 つの引数が必要であることを示しています。として渡してい(ssum 8 (list 1 3 5 7))
ます。
私の質問は次のとおりです。
- 機能を正しくセットアップしましたか?
- my 内のリストの数値を合計する簡単な方法はあり
ssum
ますか? - 私はSchemeも初めてです。コードを短縮する明らかな方法を見つけた場合は、お気軽に修正してください。