2008-09-17 16 views

Respuesta

7

¿Has consultado en F#?

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

Si acaba de añadir usando System.Linq a la parte superior de su archivo de origen hay un montón de buenas nuevas funciones añadidas a trabajar con colecciones como etc.

2

Creo que desee F#

Además, las versiones más recientes de C# tienen una gran cantidad de conceptos funcionales incluidos en la base de langauge.

0

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

2

Si está buscando algo que extienda C#, entonces no, pero hay F # que es un lenguaje funcional basado en .NET. Desde "Acerca de F #" page:

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.

Dado que F # y OCaml comparten un lenguaje de núcleo 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 tipo 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.

2

No es una biblioteca de plegado/filtrado/retractilado per se, pero Luca Bolognese de Microsoft tiene a series of blog posts donde construye una biblioteca C# para programación funcional con tipos como tuplas, registros, tipos de uniones y así sucesivamente:

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

Cuestiones relacionadas