inject
'un her değerini almak istiyorum.Enjeksiyon döngüsünün her bir değeri nasıl alınır
Örneğin [1,2,3].inject(3){|sum, num| sum + num}
, 9
değerini döndürür ve tüm döngü değerlerini almak istiyorum. [1,2,3].inject(3).map{|sum, num| sum + num}
'u denedim, ancak çalışmadı.
Yazdığım kod budur, ancak bunun gereksiz olduğunu hissediyorum.
a = [1,2,3]
result = []
a.inject(3) do |sum, num|
v = sum + num
result << v
v
end
p result
# => [4, 6, 9]
aynı anda inject
ve map
kullanmak için bir yolu var mı?
Ne [(veya 'scan') önek toplamı] (https://wikipedia.org/wiki/Prefix_sum#Scan_higher_order_function) denir arayan ve' fold' açısından [uygulama vardır ] (http://stackoverflow.com/q/2243812/2988) umduğumuz gibi önemsiz değildir. Ne yazık ki, 'scan' Ruby çekirdek kütüphanelerinin veya standart kütüphanelerin bir parçası değildir. –