On Jun 2, 2011, at 9:11 AM, Yingjian Ma wrote: > Here is another question. In (lambda (ls), it seems ls took the value from > v. How does Racket know not pass x to ls as the argument?
"helper" is defined as "(lambda (ls) ...)" The only place you call "helper", you give it "(vector->list v)"; you don't pass it x, so it doesn't take x. > Does it alway takes the right variable? No, it always takes what is explicitly passed in as arguments :-) > Also, I want code to keep all the letters that is not a. It does not work for > (test 'a #(b c a b a d)). The result is '(c b). If you know how to > generalize it, please let me know. In fact, the program you showed us has quite a number of problems: try (test 'a #(b)) (test 'a #(a a)) (test 'a #(a b a c)) for example. I would fix this program by starting over from scratch: the program as it stands is not only buggy but too long and complicated. My solution, and the one I would expect my beginning students to come up with, is about 140 characters long, not including contract and test cases. Stephen Bloch sbl...@adelphi.edu _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users