所以最近我学习了递归函数,我正在尝试一些练习然后我就卡住了。
问题是 list-nth-item,它使用一个列表 (lst) 和一个自然数 (n),如果存在,则生成 lst 中的第 n 个元素,否则该函数生成 false。请注意,第一项在索引 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
我知道因此不是正确的递归,当 n = 0 时它应该在列表示例中产生第一个数字(list-nth-item (list 1 2 3)0)
应该给出1
. 我对此并不陌生,只是不知道如何形成递归。