Например, в Java есть Функциональная Java и Высший порядок Java. Оба по существу предоставляют небольшой API для управления функциями более высокого порядка, карри и, возможно, несколькими новыми типами данных (кортежи, неизменные списки).
Есть ли библиотека функционального программирования для .NET?
Ответ 1
Вы просмотрели F #?
Также аккуратный пост в блоге будет здесь, в котором рассказывается о том, как использовать новые генерические/лямбда-выражения, встроенные в С# 3.0.
Если вы просто добавите использование System.Linq в начало исходного файла, добавьте много новых новых функций для работы с коллекциями, такими как сложение/фильтрация и т.д.
Ответ 2
Предполагая, что вы не можете использовать F # по какой-либо причине и просто хотите использовать функциональные парадигмы и идиомы в коде С# для повышения качества и надежности:
Соответствие шаблону функционального стиля для С#
Существует также 'elevate', в котором есть некоторые функциональные вещи, такие как типы опций (maybes) и т.д.
Ответ 3
Я думаю, что вы хотите F #
Кроме того, в более поздних версиях С# есть много функциональных понятий, включенных в базовую langauge.
Ответ 4
Может быть такая библиотека для С#, но вам, вероятно, следует рассмотреть только использование F # http://research.microsoft.com/fsharp/fsharp.aspx и http://msdn.microsoft.com/en-us/fsharp/default.aspx.
Microsoft планирует сделать F # первоклассным языком в Visual Studio, поэтому риск использования одного из CTP для создания исходного материала не должен быть минимальным.
Ответ 5
Если вы ищете что-то, что расширяет С#, тогда нет, но есть F #, который является функциональным языком на основе .NET. На странице "About F #" страница:
F # - типизированный язык функционального программирования для .NET Framework. Он сочетает в себе сжатость, выразительность и композицию типизированного функционального программирования с поддержкой времени выполнения, библиотеками, интероперабельностью, инструментами и объектной моделью .NET. F # проистекает из семейства языков ML и имеет базовый язык, совместимый с языком OCaml, хотя он также использует С# и Haskell. F # был разработан с нуля, чтобы стать первоклассным гражданином на .NET, обеспечивая плавную совместимость с другими языками .NET. Например, С# и F # могут напрямую обращаться друг к другу. Это означает, что F # имеет непосредственный доступ ко всем API-интерфейсам .NET Framework, включая, например, Windows Presentation Foundation и DirectX. Аналогично, библиотеки, разработанные в F #, могут использоваться с других языков .NET.
Так как F # и OCaml используют аналогичный основной язык, некоторые библиотеки и приложения OCaml могут перекрестно компилировать либо напрямую, либо с незначительными условно-скомпилированными изменениями. Это обеспечивает путь к перекрестной компиляции и/или переносу существующего кода OCaml в .NET, а также позволяет программистам передавать навыки между этими языками. Основной акцент проекта заключался в расширении охвата OCAMl-подобных языков на арены, где они традиционно не использовались. На протяжении всего проекта дизайнеры F # благодарны за поддержку и поддержку Xavier Leroy и других в сообществе OCaml.
Ответ 6
Не библиотека с оберткой как таковая, но Luca Bolognese из Microsoft серию сообщений в блогах, где он строит библиотеку С# для функциональное программирование с такими типами, как кортежи, записи, объединения типов и т.д.:
Кроме того, Linq - это в основном библиотека для функционального программирования с поддержкой синтаксиса в С#.
Ответ 7
Отметьте http://code.msdn.microsoft.com/FunctionalCSharp для некоторых образцов.
Ответ 8
LanguageExt выглядит очень, обещающим упростить программирование функционального стиля на С#.
Ответ 9
F #, есть версия CTP, доступная от Microsoft.