F# en VS2010

Publicación del inglés original: viernes, 9 de octubre de 2009 a las 22:21 PST por Somasegar

Con Visual Studio nos esforzamos para dar a su organización las herramientas que le ayuden a hacer frente a una amplia gama de problemas de software con la interoperabilidad y la eficiencia que usted necesita y espera de un software basado en .NET Framework.

Así, Visual Studio 2010 es la primera versión que apoya directamente la programación funcional mediante el lenguaje de programación F#.

F# es un lenguaje de .NET de alta producción que combina la programación funcional y la programación orientada a objetos y es ideal para el desarrollo paralelo, algorítmico y desarrollo técnico y exploratorio. F# es el resultado de una estrecha asociación entre Microsoft Research y el equipo de Visual Studio. Desde el anuncio de F# en Visual Studio 2010 hemos visto una oleada de interés y adopción del idioma. También hemos trabajado estrechamente con la comunidad de F# y los usuarios principales para asegurarnos que cumple con las necesidades de los desarrolladores de software profesionales que trabajan en estos dominios.

F# trae muchas características nuevas a Visual Studio de 2010, abarcando todo desde escribir código con tuplas y funciones para simplificar el código, programación asincrónica libre de errores y tipos seguros para código de punto flotante. A continuación muestro algunos de los aspectos más destacados de esta adición a los idiomas de Visual Studio.

Sintaxis simple y precisa

F# es un lenguaje fuertemente tipado como C#, pero con una sintaxis sencilla a menudo vista en un lenguaje dinámico como Python. Esto hará sus programas ligeros, parecidos a funciones matemáticas.

let data = (1,2,3)

let rotations (x, y, z) =

[ (x, y, z);

(z, x, y);

(y, z, x) ]

let derivative f x =

let p1 = f (x - 0.05)

let p2 = f (x + 0.05)

(p2 - p1) / 0.1

let f x = 2.0*x*x - 6.0*x + 3.0

let df = derivative f

System.Console.WriteLine("La derivada de f en x=4 es {0}", df 4.0)

Cuando se ejecuta, se imprimirá este programa: “La derivada de f en x=4 es 10”

Programación paralela y asíncrona

.NET Framework 4 y Visual Studio 2010 contienen grandes bibliotecas y herramientas para el fácil desarrollo de aplicación paralela. F# las complementa con características del lenguaje diseñadas para facilitar la programación paralela y asincrónica más intuitiva. Esto incluye características fundamentales del lenguaje como inmutabilidad y funciones de primera clase y modelos de programación potentes, tales como flujos de trabajo asincrónicos, que le permiten escribir código asíncrono con el mismo estilo lineal del código síncrono al que está acostumbrado.

let http url =

async { let req = WebRequest.Create(Uri url)

let! resp = req.AsyncGetResponse()

let stream = resp.GetResponseStream()

let reader = new StreamReader(stream)

let! contents = reader.AsyncReadToEnd()

return contents }

let sites = ["http://bing.com"; "http://microsoft.com";

"http://msdn.com"; "http://msnbc.com"]

let htmlOfSites =

Async.Parallel [for site in sites -> http(site)]

|> Async.RunSynchronously

Integrado con Visual Studio 2010 y .NET 4

La integración de F# en Visual Studio 2010 incluye plantillas de proyecto, soporte IDE, IntelliSense e integración de la ventana de herramientas interactiva de F#. F# puede utilizarse para desarrollar aplicaciones y componentes destinados a .NET 2.0 a través de .NET 4 y Silverlight. Como un lenguaje. NET, F# puede usarse cómodamente junto con C# y Visual Basic.NET. En .NET 4, los tipos de núcleo que F# utiliza, como Tuple, Lazy y BigInteger, ahora forman parte de .NET Framework y pueden utilizarse en todos los lenguajes de .NET.

La ventana interactiva de herramientas de F# permite un estilo de desarrollo exploratorio dentro de Visual Studio. A continuación puede ver el código de fuente de F# de un script de F# abierto en el editor de Visual Studio y en la ventana interactiva de herramientas de F# donde se ejecuta el código de forma interactiva. En la parte superior derecha se encuentra el formulario y los gráficos que ha creado la secuencia de comandos.

Unidades de medida

Una característica innovadora de F# es las unidades de medida, que permiten anotar su punto flotante del código con unidades, como por ejemplo, metros y segundos. Esto es fácil de hacer, y los errores se muestran en el desarrollo cuando el código combina unidades incorrectamente. Lo que proporciona la comprobación en tiempo de compilación del punto flotante del código exacto sin sacrificar el rendimiento.

Estas son, de un vistazo, algunas de las características interesantes de F#. Para obtener más información sobre F#, visite el centro de desarrollo F# (en inglés) en MSDN.

¡Namaste!