嘿,所以我正在创建一个函数(除数 n),它应该借助模函数和一个充当从数 n 向下的计数器的函数来计算数 n 中除数的数量。我的问题是模函数应该输出真或假,这取决于数字是否是整数,但是我的 if 语句
(if (= (divides n k) #f)
0
我不确定为什么,但代码不会将 if 语句评估为 true 或 false .. 它只是跳过它。我也不确定 0 是否应该是正确的输出,我希望它只是跳过该数字而不计算它。
这是我的代码:
(define (divides a b) (= 0 (modulo b a)))
(define (divisors-upto n k)
(if (= (divides n k) #f)
0
(+ k (divisors-upto n (- k 1)))))
(define (divisors n) (divisors-upto n n))
(divisors 4) ;for example should produce the result 3