mapPartial
RubyにSMLのList.mapPartialに相当するものって無いのかな?
module Enumerable def map_partial(&block) block ||= lambda{|x| x} res = [] each{| v | elm = block.call(v) res.push(elm) if elm } res end end [1,2,nil,3,6,nil,8].map_partial{| i | i && i + 1 } # => [2, 3, 4, 7, 9]