我正在完成这项学校作业,我在下面的代码的最后一行继续讨论这个问题。错误是list-ref:合同违规。所以,我希望我可以获得帮助重写最后一行,以便我能够使用递归,因为我不允许使用循环或作为赋值的一部分开始。
(define (second lst)
(cond [(and(list? lst)(not(null? lst)) (not(null? (cdr lst)))) (first (rest lst))]
[else '()]))
(define (extract-helper lst size counter)
(cond [(equal? size counter) counter]
[else (second (list-ref lst counter))(extract-helper (list-ref lst (+ counter 1)) size (+ counter 1))]))