Referencia del lenguaje F#
Esta sección constituye una referencia del lenguaje F#, un lenguaje de programación multiparadigma destinado a la plataforma .NET. El lenguaje F# admite los modelos de programación funcional, orientada a objetos e imperativa.
Tokens de F#
En la tabla siguiente se muestran temas de referencia que proporcionan tablas de palabras clave, símbolos y literales que se utilizan como tokens en F#.
Título |
Descripción |
---|---|
Contiene vínculos a información referente a todas las palabras clave del lenguaje F#. |
|
Contiene una tabla de símbolos y operadores que se utilizan en el lenguaje F#. |
|
Describe la sintaxis de los valores literales en F# y cómo especificar la información de tipo de los literales de F#. |
Conceptos del lenguaje F#
En la tabla siguiente se muestran los temas de referencia disponibles que describen los conceptos del lenguaje.
Título |
Descripción |
---|---|
Las funciones representan la unidad fundamental de la ejecución de un programa en cualquier lenguaje de programación. Al igual que en otros lenguajes, las funciones en F# tienen un nombre, pueden tener parámetros y recibir argumentos, y tienen un cuerpo. F# también admite construcciones de la programación funcional, como el tratamiento de las funciones como valores, el uso de funciones sin nombre en las expresiones, la composición de funciones para formar nuevas funciones, funciones currificadas y la definición implícita de funciones mediante la aplicación parcial de argumentos de función. |
|
Describe los tipos que se usan en F#, se explica cómo se les asigna un nombre y se incluye una descripción. |
|
Describe cómo el compilador de F# realiza la inferencia de los tipos de valor, variables, parámetros y valores devueltos. |
|
Describe las construcciones genéricas en F#. |
|
Describe la herencia, que se utiliza para modelar la relación de identidad o los subtipos en la programación orientada a objetos. |
|
Describe los miembros de los tipos de objeto de F#. |
|
Describe la compatibilidad con lenguajes para definir parámetros y pasar argumentos a las funciones, los métodos y las propiedades. Incluye información sobre cómo pasar por referencia. |
|
Describe cómo sobrecargar los operadores aritméticos de un tipo de clase o registro, así como en el nivel global. |
|
Describe la compatibilidad con las conversiones de tipos en F#. |
|
Describe el control de acceso en F#. El control de acceso se refiere a declarar qué podrán utilizar determinados elementos de programa, tales como tipos, métodos, funciones, etc. |
|
Describe los modelos, que son las reglas para transformar los datos de entrada que se utilizan en todo el lenguaje F# para extraer datos de comparación con un modelo, descomponer datos en sus partes constituyentes o extraer información de los datos de varias maneras. |
|
Describe los modelos activos. Los modelos activos permiten definir particiones con nombre que subdividen los datos de entrada. Se pueden usar modelos activos para descomponer los datos de manera personalizada para cada partición. |
|
Describe la expresión assert, que es una característica de depuración que se puede utilizar para probar una expresión. En caso de error en modo de depuración, una aserción genera un cuadro de diálogo de error del sistema. |
|
Contiene información sobre la compatibilidad con el control de excepciones en el lenguaje F#. |
|
Describe los atributos, que permiten aplicar metadatos a una construcción de programación. |
|
Describe las palabras clave use y using, que permiten controlar la inicialización y la liberación de los recursos. |
|
Describe la compatibilidad con espacios de nombres en F#. Un espacio de nombres permite organizar el código en áreas de funcionalidad relacionada, a fin de adjuntar un nombre a una agrupación de elementos de programa. |
|
Describe los módulos. Un módulo de F# es una agrupación de código de F#, como valores, tipos y valores de función, en un programa de F#. Agrupar el código en módulos ayuda a mantener junto el código relacionado y a evitar conflictos de nombres en los programas. |
|
Describe cómo funciona open. Una declaración de importación especifica un módulo o un espacio de nombres a cuyos elementos se puede hacer referencia sin utilizar un nombre completo. |
|
Describe las signaturas y los archivos de signatura. Un archivo de signatura contiene información sobre las signaturas públicas de un conjunto de elementos de programa de F#, tales como tipos, espacios de nombres y módulos. Se puede utilizar para especificar la accesibilidad de estos elementos de programa. |
|
Describe la compatibilidad con la generación de archivos de documentación para comentarios de documentación XML, también denominados comentarios de barra diagonal triple. Se puede generar documentación a partir de los comentarios de código en F# exactamente igual que en los demás lenguajes .NET. |
|
Describe la sintaxis para las construcciones de F# cuando no está habilitada la sintaxis ligera. La directiva #light "off" en la parte superior del archivo de código indica que se trata de la sintaxis detallada. |
Tipos en F#
En la tabla siguiente se muestran los temas de referencia disponibles que describen los tipos admitidos por el lenguaje F#.
Título |
Descripción |
---|---|
Describe los valores, que son cantidades inmutables que tienen un tipo específico; los valores pueden ser números enteros o de punto flotante, caracteres o texto, listas, secuencias, matrices, tuplas, uniones discriminadas, registros, tipos de clase o valores de función. |
|
Describe los tipos primitivos fundamentales que se utilizan en el lenguaje F#. También se proporcionan los tipos de .NET correspondientes y los valores máximos y mínimos para cada tipo. |
|
Describe el tipo unit, que indica la ausencia de un valor concreto; el tipo unit tiene solo un valor, que actúa como marcador de posición cuando no existe o no se necesita ningún otro valor. |
|
Describe las cadenas en F#. El tipo string representa texto inmutable como una secuencia de caracteres Unicode. string es un alias de String en .NET Framework. |
|
Describe las tuplas, que son agrupaciones de valores sin nombre pero ordenados cuyos tipos pueden ser diferentes. |
|
Describe las listas. Una lista en F# es una serie ordenada e inmutable de elementos del mismo tipo. |
|
Describe el tipo de opción. En F#, se utiliza una opción cuando un valor puede o no existir. Una opción tiene un tipo subyacente y puede contener un valor de ese tipo o no tener ningún valor. |
|
Describe las secuencias. Una secuencia es una serie lógica de elementos del mismo tipo. Los elementos individuales de la secuencia únicamente se calculan si es necesario, de modo que la representación pueda ser menor que lo que indica el recuento literal de elementos. |
|
Describe las matrices. Las matrices son secuencias mutables de tamaño fijo y basadas en cero de elementos de datos consecutivos, todos del mismo tipo. |
|
Describe los registros. Los registros representan agregados simples de valores con nombre, opcionalmente con miembros. |
|
Describe las uniones discriminadas, que proporcionan compatibilidad con valores que pueden ser uno de los diversos casos con nombre, cada uno con valores y tipos posiblemente diferentes. |
|
Describe las enumeraciones, que son tipos que tienen un conjunto definido de valores con nombre. Se pueden utilizar en lugar de los literales para que el código sea más fácil de leer y mantener. |
|
Describe las celdas de referencia, que son ubicaciones de almacenamiento que permiten crear variables mutables con semántica de referencias. |
|
Describe abreviaturas de tipo, que son nombres alternativos para los tipos. |
|
Describe las clases, que son tipos que representan objetos que pueden tener propiedades, métodos y eventos. |
|
Describe las estructuras, que son tipos de objeto compactos que puede ser más eficaces que una clase para los tipos que tienen una pequeña cantidad de datos y un comportamiento simple. |
|
Describe las interfaces, que especifican conjuntos de miembros relacionados que otras clases implementan. |
|
Describe las clases abstractas, que son clases que dejan algunos o todos los miembros sin implementar para que las clases derivadas puedan proporcionar las implementaciones. |
|
Describe las extensiones de tipo, que permiten agregar nuevos miembros a un tipo de objeto previamente definido. |
|
Describe los tipos flexibles. Una anotación de tipo flexible es una indicación de que un parámetro, una variable o un valor tiene un tipo compatible con el tipo especificado, de tal forma que la compatibilidad viene determinada por la posición en una jerarquía orientada a objetos de clases o interfaces. |
|
Describe los delegados, que representan una llamada de función como un objeto. |
|
Describe las unidades de medida. En F#, los valores de punto flotante pueden tener unidades de medida asociadas, que se suelen usar para indicar la longitud, el volumen, la masa, etc. |
Expresiones de F#
En la tabla siguiente se muestran los temas que describen las expresiones de F#.
Título |
Descripción |
---|---|
Describe la expresión if...then...else, que ejecuta diferentes bifurcaciones de código y se evalúa como un valor distinto según la expresión booleana especificada. |
|
Describe la expresión match, que proporciona control de bifurcación basado en la comparación de una expresión con un conjunto de modelos. |
|
Describe la expresión for...to, que se utiliza para iterar en un bucle un intervalo de valores de una variable de bucle. |
|
Describe la expresión for...in, una construcción de bucle que se utiliza para recorrer en iteración las coincidencias de un modelo en una colección enumerable como una expresión de intervalo, una secuencia, una lista, una matriz u otra construcción que admita la enumeración. |
|
Describe la expresión while...do, que se utiliza para realizar la ejecución reiterativa (en bucle) mientras se cumple una condición de prueba especificada. |
|
Describe las expresiones de objeto, que son aquellas que crean nuevas instancias de un tipo de objeto anónimo creado dinámicamente que se basa en un tipo base, una interfaz o un conjunto de interfaces existente. |
|
Describe los cálculos diferidos, que son cálculos que no se evalúan de inmediato sino cuando realmente se necesita el resultado. |
|
Describe las expresiones de cálculo en F#, que proporcionan una sintaxis adecuada para escribir cálculos que se pueden secuenciar y combinar mediante enlaces y construcciones de flujo de control. Se pueden utilizar para proporcionar una sintaxis apropiada para los monads, una característica de programación funcional que se puede utilizar para administrar datos, controles y efectos secundarios en programas funcionales. Uno de los tipos de expresión de cálculo, el flujo de trabajo asincrónico, proporciona compatibilidad con los cálculos asincrónicos y en paralelo. Para obtener más información, vea Flujos de trabajo asincrónicos (F#). |
|
Describe los flujos de trabajo asincrónicos, una característica del lenguaje que permite escribir código asincrónico de manera muy similar a cómo se escribe código sincrónico. |
|
Describe las citas de código, una característica del lenguaje que permite generar expresiones de código de F# y trabajar con ellas mediante programación. |
Construcciones admitidas por el compilador
En la tabla siguiente se muestran los temas que describen las construcciones especiales admitidas por el compilador.
Tema |
Descripción |
---|---|
Describe las directivas de procesador y las directivas de compilador. |
|
Identificadores de línea, archivo y ruta de acceso de código fuente (F#) |
Describe los identificadores __LINE__, __SOURCE_DIRECTORY__ y __SOURCE_FILE__, que son valores integrados que permiten obtener acceso al número de línea, directorio y nombre de archivo de código fuente en el código. |