我正在尝试实现一个名为funPower的函数,它接受一个函数f,一个整数n并返回函数f^n。例如,((funPower sqrt 2) 16)应该返回2,即(sqrt (sqrt 16))。
这是我到目前为止所得到的,但没有给我正确的输出。
(define (funPower f n)
(lambda(x) (if (<= n 1)
(f x)
(f (funPower f (- n 1)) x))))发布于 2020-09-25 11:14:19
试试这个:
(define funpow
(lambda (f n)
((lambda (s) (s s n (lambda (x) x)))
(lambda (s n o)
(if (zero? n)
o
(s s (- n 1)
(lambda (x)
(o (f x)))))))))
(define sqrt_2 (funpow sqrt 2))
(define pow2_2 (funpow (lambda (x) (* x x)) 2))
(sqrt_2 16)
(pow2_2 2)https://stackoverflow.com/questions/64056227
复制相似问题