ラケット博士で「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))
そしてこれは私が得ているエラーです:
cdr: contract violation
expected: pair?
given: #
期待される出力は
(4 4 5)