我正在尝试在Dr Racket中创建“应用N次”函数,但不知道哪里出了问题。我的代码似乎是正确的,但显然我错过了什么。下面打印了我的代码和我得到的错误。
(define (applyNtimes F n)
(lambda (x)
(if (= n 0) x
(F (applyNtimes F (- n 1))))))
(define cdr3 (applyNtimes cdr 3))
(cdr3 '(1 2 3 4 4 5))
这是我遇到的错误:
。涉及IT技术,请问需要进一步的上下文来帮助翻译吗?
cdr: contract violation
expected: pair?
given: #
预期输出应该是:
(4 4 5)