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