X と Y の 2 つの整数を取り、X/Y + (X-1)/(Y-1) + ...
いずれかの数値が 0 になるまで再帰的に加算することになっている Scheme の関数を作成しています。
たとえば、4 と 3 を取ります。
4/3 + 3/2 + 2/1 = 29/6
正しく動作していない私の機能は次のとおりです。
(define changingFractions (lambda (X Y)
(cond
( ((> X 0) and (> Y 0)) (+ (/ X Y) (changingFunctions((- X 1) (- Y 1)))))
( ((= X 0) or (= Y 0)) 0)
)
))
編集:コメントに記載されている問題を修正するためにコードを変更し、 と の場所を変更しましor
たand
。
(define changingFractions (lambda (X Y)
(cond
( (and (> X 0) (> Y 0)) (+ (/ X Y) (changingFunctions (- X 1) (- Y 1) )))
( (or (= X 0) (= Y 0)) 0)
)
))
残念ながら、まだエラーが発生しています。