Например, в Java есть Функциональная Java и Java высшего порядка. Оба, по сути, предоставляют небольшой API для управления каррированными функциями более высокого порядка и, возможно, несколько новых типов данных (кортежи, неизменяемые списки).





Я думаю ты хочешь F#
Кроме того, более поздние версии C# содержат множество функциональных концепций, включенных в базовый язык.
F#, есть выпуск CTP от Microsoft.
Такая библиотека может существовать для C#, но вам, вероятно, следует рассмотреть возможность использования только F# http://research.microsoft.com/fsharp/fsharp.aspx и http://msdn.microsoft.com/en-us/fsharp/default.aspx.
Microsoft планирует сделать F# первоклассным языком в Visual Studio, поэтому при использовании одного из CTP для создания исходного материала не должно быть риска.
Если вы ищете что-то, что расширяет C#, тогда нет, но есть F#, который является функциональным языком на основе .NET. Из "О F#" страница:
F# is a typed functional programming language for the .NET Framework. It combines the succinctness, expressivity, and compositionality of typed functional programming with the runtime support, libraries, interoperability, tools and object model of .NET. F# stems from the ML family of languages and has a core language compatible with that of OCaml, though also draws from C# and Haskell. F# was designed from the ground up to be a first-class citizen on .NET, giving smooth interoperability with other .NET languages. For example, C# and F# can call each other directly. This means that F# has immediate access to all the .NET Framework APIs, including, for example, Windows Presentation Foundation and DirectX. Similarly, libraries developed in F# may be used from other .NET languages.
Since F# and OCaml share a similar core language, some OCaml libraries and applications can cross-compile either directly or with minor conditionally-compiled changes. This provides a path to cross-compile and/or port existing OCaml code to .NET, and also allows programmers to transfer skills between these languages. A major focus of the project has been to extend the reach of OCaml-like languages into arenas where they have not traditionally been used. Throughout the project the designers of F# are grateful for the support and encouragement of Xavier Leroy and others in the OCaml community.
вы смотрели F#?
Также был бы интересный пост в блоге здесь, в котором рассказывается о том, как использовать новые общие / лямбда-выражения, встроенные в C# 3.0.
Если вы просто добавите using System.Linq в начало исходного файла, будет добавлено МНОГО новых хороших функций для работы с коллекциями, таких как сворачивание / фильтрация и т. д.
Не упакованная в термоусадочная библиотека сама по себе, но у Луки Болоньезе из Microsoft есть серия сообщений в блоге, где он создает библиотеку C# для функционального программирования с такими типами, как кортежи, записи, объединения типов и так далее:
Также Linq - это в основном библиотека для функционального программирования с синтаксической поддержкой на C#.
Проверьте http://code.msdn.microsoft.com/FunctionalCSharp для некоторых образцов.
Предполагая, что вы не можете использовать F# по какой-либо причине и просто хотите использовать функциональные парадигмы и идиомы в своем коде C# для повышения качества и надежности:
Сопоставление с образцом функционального стиля для C#
Библиотека монад для C# /. Net
Существует также 'поднять', который имеет некоторые функциональные вещи, такие как типы опций (maybes) и т. д.
LanguageExt выглядит очень многообещающим для упрощения программирования в функциональном стиле на C#.
Еще один вариант, который стоит рассмотреть - FuncSharp. Он не такой тяжелый, как LanguageExt, и охватывает наиболее важные шаблоны / аспекты.