Does the pattern matching do something that Ruby's map() can't do? Coming from Perl, map() there can return fewer elements than the source list, so pattern matching works already. A short skim of Ruby's map seems to imply it always returns something with the same number of elements. Edit: I was confused about what this feature did. So this subthread is still interesting, but mostly unrelated.
Map is data manipulation, whereas pattern-matching is control flow.
The sentence "It can traverse a given object and assign its value if it matches a pattern" sounded like traverse and (optionally) manipulate.