Ask your own question, for FREE!
Computer Science 11 Online
OpenStudy (anonymous):

I've got (define (lod-clean lst) (cond [(empty? lst) empty] [(and (> (first lst) 0)(empty? (rest lst))) (first lst)] [(and (= (first lst) 0)(empty? (rest lst))) empty] [else (cons (first lst) (lod-clean (rest lst)))])) but when i test (lod-clean (list 1 2 3 4 0 0)) i get (list 1 2 3 4 0), i need to get rid of all trailing zeros, please help @Computer Science

OpenStudy (anonymous):

Try to use terminal recursivity since you're trying to work from the end to the start. It should be something like... (define (lod-clean list) (lod-clean-aux list '())) (define (lod-clean-aux list r) (cond ((empty? list) r) ((> (car list) 0) (lod-clean-aux (cdr list) (append r (list (car list)))))))) First method works only to call the aux method that actually does the job. It should work though I can't test it at the moment. car = first cdr = rest r = aux list to which values are passed to and will be returned in the end.

OpenStudy (anonymous):

@veryconfused, Try putting several 0's at the end of your test list. It's only removing the very last 0 (not all but one). Also, if your test list ends with a non-zero number you're not returning a list. Your base cases seem to be where you've put the important logic. You're modifying the return value, so once you reach the base case you'll start returning from the recursive calls, and all you'll do is cons the head of the list to the return value. I created another function, zeros?, which returns #t if the list is empty or full of zeros. As I cdr down the list in lod-clean I check zeros? each time. When it's #t I start returning, and cons the car of the current list to the return value. I don't like it because in the worst case (a list of all zeros with a non-zero at the very end) it's O(n^2). And it's not even tail recursive. (It's been a long time since I've had to think in Scheme.)

OpenStudy (anonymous):

@Narsat, I couldn't get your code to return anything with any test case.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Latest Questions
laylasnii13: Can i dm anybody to vent having a rough time ??
8 hours ago 1 Reply 0 Medals
kaelynw: starting to draw a hand
8 hours ago 15 Replies 2 Medals
Twaylor: Rate it :D (Took 2 days)
8 hours ago 7 Replies 0 Medals
XShawtyX: Art, Short Writing Assignment: Imagining Landscapes
8 hours ago 4 Replies 1 Medal
XShawtyX: Chemistry, Help ud83dude4fud83cudffe
1 day ago 13 Replies 1 Medal
kaelynw: tried a lil smt, the arm is off but i like the other stuff
1 day ago 27 Replies 3 Medals
kaelynw: art igg
1 day ago 14 Replies 1 Medal
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!