Fun with flat_map (in Ruby)
How I accidentally learned about...
irb
> [2].map { |i| i*i }
=> [4]
> [4].map { |i| Math.sqrt(i) }
=> [2.0]
> [-1].map { |i| Math.sqrt(i) }
Math::DomainError (Numerical argument is out of domain - "sqrt")> [-1].map { |i| i >= 0 ? [Math.sqrt(i)] : [] }
=> [[]]
> [9].map { |i| i >= 0 ? [Math.sqrt(i)] : [] }
=> [[3.0]]> [9].map { |i| i >= 0 ? [Math.sqrt(i)] : [] }.flatten
=> [3.0]
> [-1].map { |i| i >= 0 ? [Math.sqrt(i)] : [] }.flatten
=> []Last updated