わかりました、私の友人と私はこれを何度も試みましたが、彼らが私たちに答えを与えるだけであり、それは私たちが何も学ぶのを助けないので、家庭教師に行くことを拒否しました。
今のところ、2つのことのいずれかを実行するコードを取得できます。リストの合計を返すか、リスト自体を返します。リストと合計の最後の桁を返すように、コードを取得する必要があります。これまでに持っている2つのものがあります:
(define (add-checksum ls)
(cond
[(null? ls) 0]
[else (+ (car ls) (add-checksum (cdr ls)))]))
(define (add-checksum-helper ls)
(cond
[(null? ls) 0]
[else (cons (car ls) (add-checksum-helper (cdr ls)))]))
コードの最初のセットは加算を行い、合計を返します。.0
2番目はリストに加えて合計の最後の桁がどこに行くべきかを返しますか?誰かが私たちを助けることができますか?ありがとう!
編集:
(define (checksum ls)
(append ls ((cdr (add-checksum ls)))))
(define (add-checksum ls)
(cond
[(null? ls) 0]
[else (+ (car ls) (add-checksum (cdr ls)))]))
戻り値は次のとおりです。
(checksum '(4 5 6 7 8))
((4 5 6 7 8) . 30)
(4 5 6 7 8 0)
の代わりに返す必要があり(.30)
ます。を取得する方法がわかりません0
。(cdr 30)
そうすると、リストはペアになりません。今何か提案はありますか?