Я уже некоторое время ломал голову над этим.
При использовании Reduce - почему первый элемент возвращается без выполнения операции, определенной в блоке?Или я упускаю важный момент в том, как работает Reduce?
В следующем примере:
arr = [1, 3, 5]
arr.reduce {|sum, n| sum + (n * 3) }
#=> 25
Я бы ожидал, что результат будет 27 .
Так как:
0 + (1 * 3) = 3
3 + (3 * 3) = 12
12 + (5 * 3) = 27
Через некоторое время поиграв с ним, я понял, что в первом «тике» - объект из массива просто прибавляется к сумме, а не умножается,Так что расчет выглядит примерно так:
??? = 1
1 + (3 * 3) = 10
10 + (5 * 3) = 25
Может ли кто-нибудь помочь мне выяснить, где я сошел с пути?