Novedades de Visual F# 2010

F# es un lenguaje de programación multiparadigma para .NET Framework que está disponible en Visual Studio 2010. El lenguaje F# admite la programación funcional, la programación orientada a objetos y la programación imperativa.

Características de la versión de F# de Visual Studio 2010

En las secciones siguientes, se describen algunas de las características que están disponibles en la primera versión de Visual F#.

Compatibilidad con la programación funcional

Las funciones se tratan como valores y se pueden pasar directamente a otras funciones. Esta característica facilita la codificación de funciones de orden superior (funciones que operan con funciones). También facilita la escritura de un código más declarativo, que suele ser menos propenso a cometer errores.

F# admite la programación composicional. Es posible componer funciones y llamarlas en secuencia mediante una sintaxis de operadores simple. Se pueden combinar llamadas a funciones mediante el operador de canalización, que permite que la entrada de una función sea la salida o el valor devuelto de otra función. Asimismo, se pueden definir nuevas funciones combinando otras mediante el operador de composición.

Para obtener más información, vea Funciones (F#).

Expresiones lambda

Las expresiones lambda permiten definir funciones in situ, sin tener que nombrarlas. Para obtener más información, vea Expresiones lambda: la palabra clave fun (F#).

Tipos de datos útiles

F# proporciona tipos que admiten los estilos de programación funcional, como las tuplas para colecciones de datos simples y las uniones discriminadas para datos simbólicos estructurados. Para obtener más información, vea Tuplas (F#), Uniones discriminadas (F#) y Opciones (F#).

Tipos de datos inmutables

F# proporciona estructuras de datos inmutables, tales como listas, asignaciones, conjuntos, secuencias y registros inmutables. Para obtener más información, vea Listas (F#), Secuencias (F#) y Registros (F#).

Coincidencia de modelos

La funcionalidad de coincidencia de modelos permite descomponer los datos en sus partes constituyentes y realizar bifurcaciones complejas basadas en la descomposición de datos. La coincidencia de modelos también es extensible. Para obtener más información, vea Expresiones match (F#), Coincidencia de modelos [F#] y Modelos activos (F#).

Programación asincrónica y paralela

F# admite la programación asincrónica e incluye construcciones que facilitan más que nunca este tipo de programación. Para obtener más información, vea Flujos de trabajo asincrónicos (F#). F# también se puede utilizar junto con las extensiones paralelas de .NET Framework. Con F# Power Pack, también se puede usar Parallel LINQ (PLINQ) con F#. Para obtener más información, vea Programación paralela en .NET Framework.

Programación interactiva

Visual F# incluye un intérprete de F#, F# Interactive (fsi.exe), que compila y ejecuta el código de manera interactiva. Esto permite crear fácilmente prototipos de código y probar las construcciones de código sin tener que compilar un proyecto. Además, F# Interactive está integrado con el IDE de Visual Studio. Para obtener más información, vea Referencia de F# Interactive (fsi.exe).

Cálculos retrasados

F# admite expresiones con procesamiento diferido, lo que permite retrasar un cálculo hasta que se necesite un resultado. Para obtener más información, vea Expresiones con procesamiento diferido (F#).

Compatibilidad con la programación orientada a objetos

F# admite las características de los lenguajes orientados a objetos, que proporcionan a los programas escritos en F# acceso pleno a .NET Framework, además de permitir la generación de API de .NET Framework en F#. Para obtener más información, vea Clases (F#), Miembros (F#) e Herencia (F#).

Compatibilidad con la programación imperativa

F# admite construcciones de código imperativas, tales como matrices y variables mutables, funciones con efectos secundarios y construcciones en bucle, para aquellas situaciones en las que este tipo de programación es la mejor forma de resolver un problema.

Compatibilidad con los cálculos matemáticos

F# admite cálculos matemáticos. Esto incluye compatibilidad con la sobrecarga de los operadores, operadores que funcionan con genéricos, y un completo conjunto de operadores matemáticos en el que no falta el operador de exponenciación.

F# también admite los datos de punto flotante que tienen unidades de medida asociadas, lo que permite las fórmulas de punto flotante con comprobación de unidades.

Sistema de tipos avanzado

F# admite la programación genérica. Para obtener más información, vea Genéricos (F#).

F# es un lenguaje con tipos estáticos que admite la inferencia de tipos. Esto significa que todos los elementos de programa tienen un tipo definido en tiempo de compilación, lo que garantiza la seguridad de tipos, pero que no es necesario especificar explícitamente los tipos de cada valor. Dado que, en muchas ocasiones, el compilador de F# puede deducir el tipo de un elemento de programa aunque no se proporcione su tipo explícitamente, el código resulta más compacto y se reducen algunos tipos de errores de programación asociados a la coincidencia de tipos. La inferencia de tipos también incluye la generalización automática, lo que significa que las funciones que pueden ser genéricas se compilan automáticamente como tales. Para obtener más información, vea Inferencia de tipos (F#).

Bibliotecas útiles

Visual F# incluye un conjunto de bibliotecas que proporcionan compatibilidad con el lenguaje básico, los tipos de colección, la reflexión respecto de los ensamblados de F# y las E/S con formato. Además, F# proporciona acceso a todas las funcionalidades de .NET Framework 4, como las extensiones paralelas de .NET Framework y Windows Presentation Foundation. Para obtener más información, vea .NET Framework 4.

Vea también

Otros recursos

Referencia del lenguaje F#

Introducción a F#