次の関数が再帰的にどのように機能するかについて、誰かが説明してくれませんか。(smooth n (- k 1))
より単純な再帰的な例は理解できますが、 or ステートメントの下で必要な値がどのように得られるかはわかりません。
(define (divides a b)
(= (modulo b a) 0))
(define (smooth n k)
(and (>= k 2)
(or (divides k n)
(smooth n (- k 1)))))
(define (isprime p)
(if (< p 2)
#f
(not (smooth p (floor (sqrt p))))))
素数としてisprime
使用しない関数を書きましたが、上記の関数がどのように機能するか、この例でどのように機能するかがまだよくわかりません。1