最近、私は再帰関数を学び、いくつかの演習を試みていますが、立ち往生しています。
質問は list-nth-item で、リスト (lst) と自然数 (n) を消費し、存在する場合は lst の n 番目の要素を生成し、存在しない場合、関数は false を生成します。(list-nth-item (list 1 2 3) 0)
最初の項目はインデックス 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
。再帰を形成する方法がわからないだけで、これは初めてです。