Lenguaje F# de Microsoft

F# es un lenguaje de programación universal para escribir código conciso, sólido y eficaz.

F# le permite escribir código despejado y autodocumentado, donde su enfoque permanece en el dominio de su problema, en lugar de los detalles de la programación.

Lo hace sin comprometer la velocidad y la compatibilidad: es de código abierto, multiplataforma e interoperable.

open System // Gets access to functionality in System namespace.

// Defines a list of names
let names = [ "Peter"; "Julia"; "Xi" ]

// Defines a function that takes a name and produces a greeting.
let getGreeting name = $"Hello, {name}"

// Prints a greeting for each name!
names
|> List.map getGreeting
|> List.iter (fun greeting -> printfn $"{greeting}! Enjoy your F#")

F # tiene numerosas características, que incluyen:

  • sintaxis ligera
  • Inmutable por defecto
  • Inferencia de tipos y generalización automática
  • Funciones de primera clase
  • Tipos de datos potentes
  • La coincidencia de patrones
  • Programación asíncrona

En la guía del lenguaje F#

se documenta un conjunto completo de características.

Tipos de datos enriquecidos

Tipos como Registros y Uniones discriminadas le permiten representar sus datos.

// Group data with Records
type SuccessfulWithdrawal =
    { Amount: decimal
      Balance: decimal }

type FailedWithdrawal =
    { Amount: decimal
      Balance: decimal
      IsOverdraft: bool }

// Use discriminated unions to represent data of 1 or more forms
type WithdrawalResult =
    | Success of SuccessfulWithdrawal
    | InsufficientFunds of FailedWithdrawal
    | CardExpired of System.DateTime
    | UndisclosedFailure

Los registros F# y las uniones discriminadas no son nulos, son inmutables y comparables de forma predeterminada, lo que los hace muy fáciles de usar.

Corrección con funciones y coincidencia de patrones.

Las funciones de F# son fáciles de definir. Cuando se combinan con la coincidencia de patrones , le permiten definir el comportamiento cuya corrección es aplicada por el compilador.

// Returns a WithdrawalResult
let withdrawMoney amount = // Implementation elided

let handleWithdrawal amount =
    let w = withdrawMoney amount

    // The F# compiler enforces accounting for each case!
    match w with
    | Success s -> printfn "Successfully withdrew %f{s.Amount}"
    | InsufficientFunds f -> printfn "Failed: balance is %f{f.Balance}"
    | CardExpired d -> printfn "Failed: card expired on {d}"
    | UndisclosedFailure -> printfn "Failed: unknown :("

Las funciones de F# también son de primera clase, lo que significa que pueden pasarse como parámetros y devolverse desde otras funciones.

Funciones para definir operaciones sobre objetos

F# tiene soporte completo para objetos, que son útiles cuando necesita combinar datos y funcionalidad. Los miembros y funciones de F# se pueden definir para manipular objetos.

type Set<'T when 'T: comparison>(elements: seq<'T>) =
    member s.IsEmpty = // Implementation elided
    member s.Contains (value) =// Implementation elided
    member s.Add (value) = // Implementation elided
    // ...
    // Further Implementation elided
    // ...
    interface IEnumerable<‘T>
    interface IReadOnlyCollection<‘T>

module Set =
    let isEmpty (set: Set<'T>) = set.IsEmpty

    let contains element (set: Set<'T>) = set.Contains(element)

    let add value (set: Set<'T>) = set.Add(value)

En F#, a menudo escribirá código que trata los objetos como un tipo para que las funciones los manipulen. Las características como interfaces genéricas , expresiones de objetos y el uso juicioso de los miembros son comunes en los programas de F# más grandes.

¿Cómo empezar con el lenguaje F#?

Existen varias guías sobre cómo instalar y usar F# por primera vez en su máquina. Puede usar la siguiente tabla para ayudar a tomar una decisión:

SISTEMA OPERATIVOPREFIERO VISUAL STUDIOPREFERIR EL CÓDIGO DE VISUAL STUDIOPREFERIR LÍNEA DE COMANDO
WindowsIntroducción a Visual StudioComience con el código de Visual StudioIntroducción a la CLI de .NET
Mac OSComience con VS para MacComience con el código de Visual StudioIntroducción a la CLI de .NET
LinuxN / AComienza con el código de Visual StudioIntroducción a la CLI de .NET

En general, no hay ninguna guía específico que sea mejor que el resto. ¡Es recomendable ojear todas las formas de usar F # en tu máquina para ver cuál te gusta más!

Comienza online

Si prefiere no instalar F# y .NET en su máquina, también puede comenzar con F# en el navegador:

  • Introducción a F# en Binder es un cuaderno Jupyter alojado a través del servicio gratuito de Binder . ¡No es necesario registrarse!
  • Fable REPL es un REPL interactivo en el navegador que usa Fable para traducir el código F# a JavaScript. ¡Vea las numerosas muestras que van desde los conceptos básicos de F # hasta un videojuego completo que se ejecuta en su navegador!

Contenido recomendado

Relacionado

Lanzado Bootstrap 5.2.1

Bootstrap v5.2.1 está aquí con correcciones de nuestra última versión menor, v5.2. Como lanzamiento de parche, estos cambios se limitan a correcciones de errores, actualizaciones de documentación y algunas actualizaciones de dependencias. ¿Cómo actualizar a Bootstrap 5.2.1? Dirígete a https://getbootstrap.com para obtener la última versión, también se ha enviado ¡SEGUIR LEYENDO!

Anuncian React Native 0.64 con la adopción de Hermes para iOS

La última actualización de React Native, React Native 0.64 trae para Hermes sobre iOS, como su mayor novedad. Inclusión de React 17 React 17 no incluye nuevas funciones para desarrolladores ni cambios importantes. Para las aplicaciones de React Native, React 17 trae como cambio principal una ¡SEGUIR LEYENDO!

9 Mejores cursos de Angular (framework Javascript) en Coursera

Desarrollo web de pila completa con Angular de la Universidad de Ciencia y Tecnología de Hong Kong Aplicaciones web de una sola página con AngularJS de la Universidad Johns Hopkins Frameworks de JavaScript front-end: Angular de la Universidad de Ciencia y Tecnología de Hong Kong Full ¡SEGUIR LEYENDO!

Anuncian la beta de Ionic que incluye al framework Vue

¿Alguien más siente como si ocurriese un déjà vu? Parece que no hace mucho tiempo estábamos lanzando la versión beta de Ionic Vue construida con Vue 2. Dado que el lanzamiento de Vue 3 se acerca rápidamente, pensamos que este sería el momento perfecto para comenzar ¡SEGUIR LEYENDO!

Comparación entre 3 de los framework web más de moda en 2020: Flutter, React Native y Xamarin

En este artículo vamos a investigar el estado actual de los framework multiplataforma más populares para la creación de aplicaciones en Android e iOS. A la hora de usar un framework multiplataforma el objetivo final, siempre es el mismo, facilitar y permitir que un mismo equipo ¡SEGUIR LEYENDO!

Deja un comentario