DrRacket - Intermediate Student With Lambda - List ordering
I have an assignment question that asks me to write a function, using lambda, that consumes a list of numbers and removes all but the first occurrence of each number. My function is I think quite nice, with the exception that it produces the wrong result! It produces a list that contains the last occurrence of each number. It produces a list with the same values as the proper list, just in different order. Here's my code:

        (define (remove-duplicates numlist)
          (foldr (lambda (a b) (cond
                     [(not (member? a b)) (cons a b)]
                     [else b])) empty numlist))

I've tried using foldl instead of foldr but, not surprisingly, it produces the correct list, but in reverse. Is there a way of producing the correct list without resorting to reversing the list created by foldl with another lambda expression?

Please keep in mind, this is homework so no explicit answers please. 

Thanks everyone!

DrRacket - Intermediate Student With Lambda - List ordering
===

I have an assignment question that asks me to write a function, using lambda, that consumes a list of numbers and removes all but the first occurrence of each number. My function is I think quite nice, with the exception that it produces the wrong result! It produces a list that contains the last occurrence of each number. It produces a list with the same values as the proper list, just in different order. Here's my code:

        (define (remove-duplicates numlist)
          (foldr (lambda (a b) (cond
                     [(not (member? a b)) (cons a b)]
                     [else b])) empty numlist))

I've tried using foldl instead of foldr but, not surprisingly, it produces the correct list, but in reverse. Is there a way of producing the correct list without resorting to reversing the list created by foldl with another lambda expression?

Please keep in mind, this is homework so no explicit answers please. 

Thanks everyone!
