In the case of your example we’d do .map(&:unwrap) in Ruby (if unwrap was a method we’d actually want to call)
Notably, these are not the cases _1 and _2 etc are for. They are there for the cases that are not structurally “call this method on the single argument to the block” e.g. .map{ _1 + _2 } or .map { x.foo(_1) }
(_1 is reasonable, because iterating over an enumerable sequence makes it obvious what it is; _1 and _2 combined is often reasonable, because e.g. if we iterate over a key, value enumerable, such as what you get from enumerating a Hash, it’s obvious what you get; if you find yourself using _3 or above, you’re turning to the dark side and should rethink your entire life)
In the case of your example we’d do
.map(&:unwrap)in Ruby (if unwrap was a method we’d actually want to call)Notably, these are not the cases
_1and_2etc are for. They are there for the cases that are not structurally “call this method on the single argument to the block” e.g..map{ _1 + _2 }or.map { x.foo(_1) }(
_1is reasonable, because iterating over an enumerable sequence makes it obvious what it is;_1and_2combined is often reasonable, because e.g. if we iterate over a key, value enumerable, such as what you get from enumerating aHash, it’s obvious what you get; if you find yourself using_3or above, you’re turning to the dark side and should rethink your entire life)