Есть ли лучший термин для «функциональной цепочки»?

Я пишу руководство по стилю C # для своей команды, и я пытаюсь описать преимущества методов функционального стиля без побочных эффектов. Я хочу включить онлайн-ссылки для резервного копирования предложений, но я не могу показаться, что Google - это функциональная цепочка функций, которую я имею в виду.

Когда я думаю «цепочка методов», я представляю что-то вроде этого (в Ruby)

userInput.chomp.downcase.split(",").map(&:to_i)[3].to_s(16)

, где каждый метод возвращает новый объект (возможно, даже другого класса), и все без побочных эффектов, так что это похоже на составление функций на функциональном языке. Написание функций, подобных методам, делает эти типы цепочек очень легко сконструированными и, по моему опыту, значительно упрощает код.

Но когда я свяжусь с Google «C # method chaining», я продолжаю находить такие вещи как

myObj.AddItem(mItem).AddItem(mItem2).AddItem(mItem3);

, где каждый метод мутирует и возвращает приемник. Это в значительной степени противоположно функциональному программированию и, во всяком случае, относится к той вещи, которую я хочу обескуражить в своей команде. Даже когда я свяжусь с Google «C # функциональный метод цепочки», лучшим результатом является сообщение в блоге о StringBuilder, которое полностью полагается на побочные эффекты каждый вызов метода!

Есть ли для этого другой термин, чем просто «цепочка методов»? Или, еще лучше, есть ли какое-то место, которое документирует преимущества этого стиля?

3 голоса | спросил Max 17 +03002017-10-17T17:11:00+03:00312017bEurope/MoscowTue, 17 Oct 2017 17:11:00 +0300 2017, 17:11:00

1 ответ


4

Обычно используемым именем является Свободный интерфейс . В функциональном мире это просто Состав функций .

Но за пределами функционального мира у него мало подходящих применений. Да, это здорово для перечислимых. И он работает на дату /время. Но в основном это грязная конструкция, которой злоупотребляют, чтобы создать слишком умный или «читаемый» код (но только для избранных, знакомых с вашей странной внутренней библиотекой).

Свободные функциональные методы с побочным эффектом (особенно в чистых функциях) do обладают огромными преимуществами, связанными с тестируемостью, возможностью повторного использования, надежностью, параллелизмом, производительностью ... сосредоточиться на тех, а не на синтаксическом fluffery. р>

ответил Telastyn 17 +03002017-10-17T17:30:13+03:00312017bEurope/MoscowTue, 17 Oct 2017 17:30:13 +0300 2017, 17:30:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132