Help!私は2つの入力の間のすべての数の合計を取る関数を書くことを試みている。2つの入力の間のすべての数値の合計をとる関数を書く
これまでのところ、私が持っている、
(define (sum-between x y)
(cond
[(= x y) x]
[((- x y) 0) 0]
[else (+ (+ x y) (sum-between (sub1 x) (sub1 y)))]))
これは返す必要があります:
(check-expect (sum-between 0 2) 3)
(check-expect (sum-between -1 1) 0)
(check-expect (sum-between 7 7) 7)
(check-expect (sum-between 1 10) 55)
私はそれが無限ループで実行されないように、再帰的なケースを呼び出すするかどうかはわかりません。助言がありますか?ありがとう!
ある手順のどのような '( - XY)'作ろう? 'x'と' y'の両方を減らすことによって、永遠に同じままになります。各ステップで最初と最後の合計を足し合わせることで、 '( - y x 1)'回のうちの1つをあまりにも多く追加します。教えてください、あなたは紙でそれをどうやってやりましたか? – Sylwester