Tracks
/
F#
F#
/
Temario
/
Fundamentos
Fu

Fundamentos en F#

1 ejercicio

Acerca de Fundamentos

En F#, todo aquello que tiene un tipo y se puede definir se conoce como valor. Esto incluye Boolean, números enteros y listas, pero también funciones. Los valores enteros se definen como uno o más dígitos (consecutivos) y admiten los operadores matemáticos predeterminados.

Asignar un valor a un nombre se conoce como enlace. Los enlaces son inmutables, lo que los hace similares a las constantes de otros lenguajes. Los enlaces se definen con la palabra clave let.

Como F# es un lenguaje de tipado estático, cada enlace tiene un tipo. Especificar el tipo de un enlace es opcional para la mayoría de los enlaces, ya que la inferencia de tipos de F# suele poder inferir el tipo a partir de su valor.

// Automatically inferred type
let fingers = 10

Las funciones también son enlaces normales, pero con uno o más parámetros. Una función devuelve automáticamente su última expresión. La inferencia de tipos también funciona en la mayoría de las funciones, analizando con qué valores se llama a la función y qué valor devuelve.

// Automatically inferred types for parameters and return type
let add x y = x + y

Para invocar una función, se especifica su nombre y se pasan argumentos para cada uno de sus parámetros.

let five = add 2 3

Si no se puede inferir el tipo de un enlace, el compilador mostrará un error. Para solucionarlo, especifica explícitamente el tipo del enlace.

// Explicit type annotation
let fingers: int = 10

// Explicit type annotation (also for parameters)
let add (x: int) (y: int): int = x + y

Los enlaces en F# solo se pueden usar después de haberlos definido. Usar un enlace antes de haberlo definido provoca un error de compilación.

// Compile error as the add binding has not yet been defined
// let seven = add 3 + 4

let add x y = x + y

El espacio en blanco significativo se usa para definir el scope, sangrando el código con espacios en relación con la línea que declara el enlace. La convención predeterminada es usar cuatro espacios para la sangría.

let toes =
    let left = 5
    let right = 5
    left + right

let multiplyPlusTwo x y =
    let product = x * y
    product + 2

// Trying to access the left, right or product bindings
// here would result in a compile error

Los enlaces de F# (que incluyen las funciones) suelen organizarse en módulos. Un módulo agrupa funcionalidad relacionada y se define con la palabra clave module. La definición del módulo debe preceder a sus enlaces:

module Calculator

let pi = 3.14

let add x y = x + y

F# admite dos tipos de comentarios. Los comentarios de una sola línea van precedidos de // y los comentarios multilínea se insertan entre (* y *).

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Fundamentos