Introducción a F# con la CLI de .NET
En este artículo se habla de cómo se puede empezar a trabajar con F# en cualquier sistema operativo (Windows, macOS o Linux) con la CLI de .NET. Eso pasa por compilar una solución de varios proyectos con una biblioteca de clases a la que llama una aplicación de consola.
Requisitos previos
Para empezar, debe instalar el SDK de .NET más reciente.
En este artículo se da por hecho que sabe cómo usar una línea de comandos y tiene un editor de texto preferido. Si aún no lo usa, Visual Studio Code es una excelente opción como editor de texto para F#.
Compilación de una solución simple de varios proyectos
Abra un símbolo del sistema o terminal y use el comando dotnet new para crear un nuevo archivo de solución de nombre FSharpSample
:
dotnet new sln -o FSharpSample
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
FSharpSample
├── FSharpSample.sln
Escritura de una biblioteca de clases
Cambie el directorio a FSharpSample.
Use el comando dotnet new
para crear un proyecto de biblioteca de clases en la carpeta src de nombre Library.
dotnet new classlib -lang "F#" -o src/Library
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Reemplace el contenido de Library.fs
por el código siguiente:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Agregue el proyecto Library
a la solución FSharpSample
mediante el comando dotnet sln add:
dotnet sln add src/Library/Library.fsproj
Ejecute dotnet build
para compilar el proyecto. Las dependencias sin resolver se restauran al compilar.
Escritura de una aplicación de consola que use la biblioteca de clases
Use el comando dotnet new
para crear una aplicación de consola en la carpeta src de nombre App.
dotnet new console -lang "F#" -o src/App
La siguiente estructura de directorios se genera después de ejecutar el comando anterior:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Reemplace el contenido del archivo Program.fs
por el código siguiente:
open System
open Library
[<EntryPoint>]
let main args =
printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"
let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
printfn $"Input: %0A{value}"
printfn $"Output: %s{json}"
0 // return an integer exit code
Agregue una referencia al proyecto Library
mediante dotnet add reference.
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
Agregue el proyecto App
a la solución FSharpSample
mediante el comando dotnet sln add
:
dotnet sln add src/App/App.fsproj
Restaure las dependencias NuGet con dotnet restore
y ejecute dotnet build
para compilar el proyecto.
Cambie el directorio al proyecto de consola src/App
y ejecute el proyecto al pasar Hello World
como argumentos:
cd src/App
dotnet run Hello World
Debería ver los siguientes resultados:
Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}
Pasos siguientes
A continuación, vea Paseo por F# para obtener más información sobre las diferentes características de F#.