arr1 = []
arr2 = []
arr3 = []
(1..100).each do |i|
 if condition(i)
  arr1 << i
 elsif condition(2)
  arr2 << i
 else
  arr3 << i
 end
end

という処理を、map()で書くことはできますか?
map()じゃなくても、関数型っぽく書く方法があれば教えてください。