Другое сокращенное обозначение карты Ruby

Я знаю сокращение для map, которое выглядит так:

[1, 2, 3, 4].map(&:to_s)
> ["1", "2", "3", "4"]

Мне сказали, что это сокращение для:

[1, 2, 3, 4].map{|i| i.to_s}

Это имеет смысл. Мой вопрос таков: кажется, должен быть более простой способ написать:

[1, 2, 3, 4].map{|x| f.call(x)} 

для некоторой процедуры f. Я знаю, что способ, которым я только что набрал, не такой уж и длинный для начала, но я утверждаю, что ни то, ни другое не является предыдущим примером, для которого существует сокращение. Этот пример кажется дополнением к первому: вместо того, чтобы вызывать метод i to_s для каждого i, я хочу вызывать f для каждого x.

Существует ли такое сокращение?

23
задан trh178 9 January 2012 в 18:55
поделиться