> r.map {|x| x.first if x.first == e.first}.compact.size == 0

I'm an idiot, Ruby likes to call this pile of silliness "detect":

arry.reverse.inject([]) {|r, e| r.unshift(e) unless r.detect {|x|
x.first == e.first}; r}