Почему аргументы приводят в том порядке, в котором они находятся? - PullRequest
0 голосов
/ 25 апреля 2018

Я всегда забываю аргументы reduce в ruby ​​(https://ruby -doc.org / core / Enumerable.html # method-i-redu * ), который называется так:

(5..10).reduce { |sum, n| sum + n }

Есть ли причина проектирования языка, по которой аккумулятор передается первым или это просто произвольный выбор?JS работает так же.

1 Ответ

0 голосов
/ 25 апреля 2018

В основном вы можете делать такие вещи:

(5..10).reduce(&:+)

Где это расширяется до:

(5..10).reduce { |a,b| a.send(:+, b) } 

Что эквивалентно:

(5..10).reduce { |a,b| a + b }

Так что это имеет смысл.Обратите внимание, что порядок противоположен each_with_object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...