c# - una - librerias visual basic 2010
¿Hay una biblioteca de Programación Funcional para.NET? (9)
Por ejemplo, en Java hay Java funcional y Java de orden superior . Ambos esencialmente dan una API pequeña para manipular funciones currificadas de orden superior, y tal vez algunos tipos de datos nuevos (tuplas, listas inmutables).
¿Has mirado en F # ?
También estaría aquí una buena publicación de blog que habla sobre cómo usar las nuevas expresiones genéricas / lambda integradas en c # 3.0.
Si simplemente agrega System.Linq a la parte superior de su archivo fuente, se agregarán MUCHAS nuevas y agradables funciones para trabajar con colecciones como doblar / filtrar / etc.
Creo que quieres F #
Además, las versiones más recientes de C # tienen muchos conceptos funcionales incluidos en el lenguaje base.
F #, hay una versión de CTP disponible en microsoft.
Puede haber una biblioteca para C #, pero probablemente debería considerar simplemente usar F # http://research.microsoft.com/fsharp/fsharp.aspx y http://msdn.microsoft.com/en-us/fsharp/default .aspx .
Microsoft planea hacer que F # sea un lenguaje de primera clase en Visual Studio, por lo que debería haber poco riesgo al usar uno de los CTP para crear sus elementos iniciales.
Si está buscando algo que extienda C #, entonces no, pero hay F #, que es un lenguaje funcional basado en .NET. Desde la página "Acerca de F #":
F # es un lenguaje de programación funcional escrito para .NET Framework. Combina la concisión, la expresividad y la composicionalidad de la programación funcional tipada con el soporte en tiempo de ejecución, las bibliotecas, la interoperabilidad, las herramientas y el modelo de objetos de .NET. F # proviene de la familia de idiomas ML y tiene un lenguaje central compatible con el de OCaml, aunque también se basa en C # y Haskell. F # se diseñó desde cero para ser un ciudadano de primera clase en .NET, lo que brinda una interoperabilidad fluida con otros lenguajes .NET. Por ejemplo, C # y F # pueden llamarse entre sí directamente. Esto significa que F # tiene acceso inmediato a todas las API de .NET Framework, incluyendo, por ejemplo, Windows Presentation Foundation y DirectX. Del mismo modo, las bibliotecas desarrolladas en F # se pueden usar desde otros lenguajes .NET.
Como F # y OCaml comparten un lenguaje central similar, algunas bibliotecas y aplicaciones de OCaml pueden realizar compilaciones cruzadas directamente o con pequeños cambios compilados condicionalmente. Esto proporciona una ruta de compilación cruzada y / o puerto de código OCaml existente a .NET, y también permite a los programadores transferir habilidades entre estos idiomas. Uno de los principales objetivos del proyecto ha sido ampliar el alcance de los lenguajes similares a OCaml a arenas donde tradicionalmente no se han utilizado. A lo largo del proyecto, los diseñadores de F # están agradecidos por el apoyo y aliento de Xavier Leroy y otros en la comunidad OCaml.
No es una biblioteca empaquetada en sí misma, pero Luca Bolognese de Microsoft tiene una serie de publicaciones en blogs donde construye una biblioteca C # para programación funcional con tipos como tuplas, registros, tipos de uniones, etc.
Además, Linq es básicamente una biblioteca para programación funcional con soporte sintáctico en C #.
Consulte http://code.msdn.microsoft.com/FunctionalCSharp para ver algunas muestras.
Asumiendo que no puedes usar F # por cualquier razón, y solo quieres usar paradigmas funcionales y expresiones idiomáticas en tu código C # para mejorar la calidad y confiabilidad:
Coincidencia de patrón de estilo funcional para C #
Biblioteca de Mónada para C # /. Net
También hay ''elevar'' que tiene algunas cosas funcionales como tipos de opciones (maybes), etc.
LanguageExt parece muy prometedor para facilitar la programación de estilo funcional en C #.