Pregunta

Por ejemplo, en Java hay Java funcional y Java de orden superior.Básicamente, ambos brindan una pequeña API para manipular funciones curry de orden superior y quizás algunos tipos de datos nuevos (tuplas, listas inmutables).

¿Fue útil?

Solución

¿Has investigado? F#?

También sería una buena publicación de blog. aquí que habla sobre cómo usar las nuevas expresiones genéricas/lambda integradas en c# 3.0.

Si simplemente agrega el uso de System.Linq en la parte superior de su archivo fuente, se agregarán MUCHAS funciones nuevas y agradables para trabajar con colecciones como plegar/filtrar/etc.

Otros consejos

Aspectos de LanguageExt muy prometedor para facilitar la programación de estilo funcional en C#.

https://github.com/louthy/language-ext

Suponiendo que no puede usar F# por cualquier motivo y solo desea usar paradigmas y modismos funcionales en su código C# para mejorar la calidad y la confiabilidad:

Coincidencia de patrones de estilo funcional para C#

Biblioteca Monad para C#/.Net

También hay 'elevar' que tiene algunas cosas funcionales como tipos de opciones (tal vez), etc.

creo que quieres F#

Además, las versiones más recientes de C# tienen muchos conceptos funcionales incluidos en el lenguaje base.

Puede que exista una biblioteca de este tipo para C#, pero probablemente deberías considerar simplemente usar F# http://research.microsoft.com/fsharp/fsharp.aspx y http://msdn.microsoft.com/en-us/fsharp/default.aspx.

Microsoft planea hacer de F# un lenguaje de primera clase en Visual Studio, por lo que debería haber poco riesgo al usar uno de los CTP para construir su material inicial.

Si está buscando algo que extienda C#, entonces no, pero existe F#, que es un lenguaje funcional basado en .NET.De "Acerca de F#" página:

F# es un lenguaje de programación funcional escrito para .NET Framework.Combina la concisión, expresividad y composicionalidad de la programación funcional escrita con el soporte de tiempo de ejecución, bibliotecas, interoperabilidad, herramientas y modelo de objetos de .NET.F# proviene de la familia de lenguajes ML y tiene un lenguaje central compatible con el de OCaml, aunque también se basa en C# y Haskell.F# fue diseñado desde cero para ser un ciudadano de primera clase en .NET, brindando 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, incluidas, por ejemplo, Windows Presentation Foundation y DirectX.De manera similar, las bibliotecas desarrolladas en F# se pueden utilizar desde otros lenguajes .NET.

Dado que F# y OCaml comparten un lenguaje central similar, algunas bibliotecas y aplicaciones de OCaml pueden realizar una compilación cruzada directamente o con cambios menores compilados condicionalmente.Esto proporciona una ruta para realizar una compilación cruzada y/o transferir el código OCaml existente a .NET, y también permite a los programadores transferir habilidades entre estos lenguajes.Uno de los principales objetivos del proyecto ha sido ampliar el alcance de lenguajes similares a OCaml a ámbitos donde tradicionalmente no se han utilizado.A lo largo del proyecto, los diseñadores de F# agradecen el apoyo y el aliento de Xavier Leroy y otros miembros de la comunidad OCaml.

No es una biblioteca envuelta en plástico per se, pero Luca Bolognese de Microsoft tiene una serie de publicaciones de blog donde construye una biblioteca C# para programación funcional con tipos como tuplas, registros, uniones de tipos, etc.:

Además, Linq es básicamente una biblioteca para programación funcional con soporte sintáctico en C#.

Verificar http://code.msdn.microsoft.com/FunctionalCSharp para algunas muestras.

F#, hay una versión CTP disponible de Microsoft.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top