Так недавно я узнал рекурсивную функцию, и я пробую какое-то упражнение, тогда я просто застрял.Застревает при записи функции рекурсии в языке начинающих ракетки?
Вопрос список-п-й элемент, который потребляет список, (LST), и натуральное число (п), и производит п-й элемент в LST, если существует, в противном случае функция производит ложной. Примечание , что первый элемент в индекс 0. Например: (list-nth-item (list 1 2 3) 0)
производит 1
Вот мой код
;;list-nth-item consumes list and a natural number
;;and produces the n-th element in the list or false
;;list-nth-item: List Nat -> (Anyof Any false)
(define (list-nth-item lst n)
(cond
[(empty? lst)false]
[(= n 0)(first lst)]
[else ????]))
(list-nth-item (list 1 2 3)2)--> should produce 3
, таким образом, я знаю, что не является правильной рекурсией, а также при п = 0 она должна производить первые номер в списке (list-nth-item (list 1 2 3)0)
должен указывать 1
. Я новичок в этом, просто не понимаю, как сформировать рекурсию.