![][1]
В мире функционального программирования существует мощная концепция композиции функций. В C# тоже можно «встроить» каррирование и композицию, но смотрится это [так себе][2]. Вместо композиции в C# широкое применение нашел pipelining:
Func reverseWords =
s => s.Words()
.Select(StringExtensions.Reverse)
.Unwords();
Pipelining, с которым мы работаем каждый день — это extension-методы для linq. На самом деле C# способен на большее и можно запрограммировать pipeline для любых входных и выходных аргументов с проверкой типов и поддержкой intellisense.
[Читать дальше →][3]
[1]:
https://habrastorage.org/files/5f1/9c5/6d5/5f19c56d503641b3803cd89d015985f2.jpg
[2]:
http://blog.leifbattermann.de/2015/06/04/function-composition-in-csharp/
[3]:
https://habrahabr.ru/post/308052/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut