That ought to be a oneliner in any sane language today:
numbers.into_iter().filter(|n| n>10 && n%2!=0).for_each(work);
map work . filter ((/=0) . (`mod` 2)) . filter (>10) $ numbers
Insert tirade about how for-loops are free to do so much that they are slower-to-comprehend than specific-purpose iterator/list functions, here.