# [racket] Find nth term of a List

 From: Matthias Felleisen (matthias at ccs.neu.edu) Date: Tue Sep 25 22:50:10 EDT 2012 Previous message: [racket] Find nth term of a List Next message: [racket] Find nth term of a List Messages sorted by: [date] [thread] [subject] [author]

```Ashley, the proper way to derive the answer to these questions
can be found here:

http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-22.html#node_chap_17

Once you understand the design recipe, the kind of questions you're asking
on this mailing list disappear. At that point, you can start exploiting the
language and software design to interesting questions, like getting Yahooo
a Racket program.

I have sent a similar suggestion to your instructor.

In the future, I suggest that your postings go like this:

-- My problem is X.
-- I have followed the design recipe to step C.
-- Can someone help me get from C to D.

I am not saying this to make our life easier, I am suggesting this to

-- Matthias

On Sep 25, 2012, at 10:25 PM, Todd O'Bryan wrote:

> Well, I know how I'd do it, but I don't think your professor is
> teaching you the design recipe or templates, so I'm not sure how to
>
> Here's a hint. Most numbers involving natural numbers (0, 1, 2, 3,
> ...) have the following form:
>
> (define f
>  (lambda (n)
>    (if (= n 0) base-case (do-something-to (f (- n 1)))))
>
> Since zero is the base case, the only way you can get there is to
> subtract. The tricky part is figuring out what you have to do to the
> (f (- n 1)) and how to handle any other arguments to the function.
>
> So, looking at your test cases, (getNth 3 '(a b c d e)) will probably
> change into (getNth 2 ...) where you have to fill in the ... with
> something that makes the expressions equivalent and you might have to
> do some manipulating of the result.
>
> Good luck!
>
>
> On Tue, Sep 25, 2012 at 9:08 PM, Ashley Fowler
> <afowler2 at broncos.uncfsu.edu> wrote:
>> I need to make a function that finds the nth term of a list
>> Hence (getNth N LS)
>>
>> Examples of use:
>> (getNth 0 '(a b c)) 		==> a
>> (getNth 3 '(a b c d e)) 	==> d
>> (getNth 3 '(a b c)) 		==> error
>>
>>
>> so far I have
>>
>> (define getNth (lambda (N LS)
>>                   (if (eq? N 0)(car LS)
>>
>> which only includes the "base case". I need help on how to create this
>> function. Any ideas?
>>
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
>>
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

```

 Posted on the users mailing list. Previous message: [racket] Find nth term of a List Next message: [racket] Find nth term of a List Messages sorted by: [date] [thread] [subject] [author]