3 versions, all pass the test suite. Now write the function 

 pick-one-of-three : [List X X X] -> X 

and turn in. 




#lang racket

(require rackunit)

;; Nat [Listof X] -> [Listof X]
;; delete the n-th item from l, if there is one 

(module+ 
  test
  (check-equal? (deleteNth 4 '()) '())
  (check-equal? (deleteNth 0 '(a b c)) '(b c))
  (check-equal? (deleteNth 3 '(a b c)) '(a b c))
  (check-equal? (deleteNth 2 '(a b c)) '(a b)) )

(define (deleteNth n l)
  (cond
    [(= n 0) (rest l)]
    [(< n (length l)) (append (take l n) (rest (drop l n)))]
    [else l])
  #;
  (cond 
    [(empty? l) l]
    [(zero? n) (rest l)]
    [else (cons (first l) (deleteNth (sub1 n) (rest l)))])
  #;
  (cond
    [(and (zero? n) (empty? l)) l]
    [(and (positive? n) (empty? l)) l]
    [(and (zero? n) (cons? l)) (rest l)]
    [(and (positive? n) (cons? l)) (cons (first l) (deleteNth (sub1 n) (rest 
l)))]))





On Oct 7, 2012, at 10:03 PM, Ashley Fowler wrote:

> I need help with making a function that deletes the nth term from a 
> list.(list LS with its Nth element (with indexes
> starting at 0) deleted)
> So far I have 
> 
> (define (deleteNth N ls)
>     (if (null? ls)
>         ls
>         (deleteNth (- N 1) (cdr ls))))
> 
> The results should be ...
> 
> (deleteNth 4 '()) returns ()
> (deleteNth 0 '(a b c)) returns (b c)
> (deleteNth 3 '(a b c)) returns (a b c)
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to