Introducción a F# en Visual Studio para Mac

Importante

Microsoft ha anunciado la retirada de Visual Studio para Mac. Visual Studio para Mac dejará de recibir soporte técnico a partir del 31 de agosto de 2024. De forma alternativa, puede hacer lo siguiente:

Para más información, consulte Anuncio de retirada de Visual Studio para Mac.

F# se admite en el IDE de Visual Studio para Mac. Asegúrese de que tiene instalado Visual Studio para Mac.

Creación de una aplicación de consola

Uno de los proyectos más básicos de Visual Studio para Mac es la aplicación de consola. Aquí se muestra cómo hacerlo. Una vez abierto Visual Studio para Mac:

  1. En el menú Archivo, seleccione Nueva solución.

  2. En el cuadro de diálogo Nuevo proyecto, hay dos plantillas diferentes para la aplicación de consola. Hay una en Otros-> .NET que tiene como destino .NET Framework. La otra plantilla está en .NET Core-> Aplicación que tiene como destino .NET Core. Cualquier plantilla debe funcionar para este artículo.

  3. En la aplicación de consola, cambie C# a F# si es necesario. Elija el botón Siguiente para avanzar.

  4. Asigne un nombre al proyecto y elija las opciones que quiere para la aplicación. Observe que el panel de vista previa del lado de la pantalla mostrará la estructura de directorios que se creará en función de las opciones seleccionadas.

  5. Haga clic en Crear. Ahora debería ver un proyecto de F# en el Explorador de soluciones.

Escritura del código

Para empezar, escriba algo de código. Asegúrese de que el archivo Program.fs está abierto y reemplace su contenido por lo siguiente:

module HelloSquare

let square x = x * x

[<EntryPoint>]
let main argv =
    printfn "%d squared is: %d!" 12 (square 12)
    0 // Return an integer exit code

En el ejemplo de código anterior, se ha definido una función square que toma una entrada denominada x y la multiplica por sí misma. Dado que F# usa la inferencia de tipos, no es necesario especificar el tipo de x. El compilador de F# entiende los tipos en los que la multiplicación es válida y asignará un tipo a x en función de cómo se llama square. Si mantiene el puntero sobre square, debería ver lo siguiente:

val square: x:int -> int

Esto es lo que se conoce como la signatura de tipo de la función. Se puede leer así: "Square es una función que toma un entero denominado x y genera un entero". Tenga en cuenta que el compilador dio square el tipo int por ahora: esto se debe a que la multiplicación no es genérica en todos los tipos, sino que es genérica en un conjunto cerrado de tipos. El compilador de F# seleccionó int en este momento, pero ajustará la firma de tipo si llama a square con un tipo de entrada diferente, como float.

Se define otra función, main, que está decorada con el atributo EntryPoint para indicar al compilador de F# que la ejecución del programa debe comenzar allí. Sigue la misma convención que otros lenguajes de programación de estilo C, donde se pueden pasar argumentos de línea de comandos a esta función y se devuelve un código entero (normalmente 0).

En esta función se llama a la función square con un argumento de 12. A continuación, el compilador de F# asigna int -> int como tipo de square (es decir, una función que toma int y genera int). La llamada a printfn es una función de impresión con formato que usa una cadena de formato, similar a los lenguajes de programación de estilo C, parámetros que corresponden a los especificados en la cadena de formato y, luego, imprime el resultado y una nueva línea.

Ejecución de código

Puede ejecutar el código y ver los resultados al hacer clic en Ejecutar desde el menú de nivel superior y, luego, Iniciar sin depurar. Esto ejecutará el programa sin depurar y le permitirá ver los resultados.

Ahora debería ver lo siguiente impreso en la ventana de la consola que ha mostrado Visual Studio para Mac:

12 squared is 144!

¡Enhorabuena! Ha creado el primer proyecto de F# en Visual Studio para Mac, ha escrito una función de F# que imprime los resultados de la llamada a esa función y ejecuta el proyecto para ver algunos resultados.

Uso de F# interactivo

Una de las mejores características de las herramientas de F# en Visual Studio para Mac es la ventana de F# interactivo. Permite enviar código a un proceso en el que puede llamar a ese código y ver el resultado de forma interactiva.

Para empezar a usarlo, resalte la función square definida en el código. A continuación, haga clic en Editar en el menú de nivel superior. Después, seleccione Enviar selección a F# interactivo. Esto ejecuta el código en la ventana de F# interactivo. Como alternativa, puede hacer clic con el botón derecho en la selección y elegir Enviar selección a F# interactivo. Debería ver que aparece la ventana de F# interactivo con lo siguiente:

>

val square: x: int -> int

>

Esto muestra la misma firma de función para la función square que vio anteriormente al mantener el puntero sobre la función. Dado que square ahora está definido en el proceso de F# interactivo, puede llamarlo con valores diferentes:

> square 12;;
val it: int = 144
> square 13;;
val it: int = 169

Esto ejecuta la función, enlaza el resultado a un nombre nuevo it y muestra el tipo y el valor de it. Tenga en cuenta que debe finalizar cada línea con ;;. Así es como F# interactivo sabe cuándo finaliza la llamada de la función. También puede definir nuevas funciones en F# interactivo:

> let isOdd x = x % 2 <> 0;;

val isOdd: x: int -> bool

> isOdd 12;;
val it: bool = false

Lo anterior define una nueva función, isOdd, que toma un int comprueba si es impar. Puede llamar a esta función para ver lo que devuelve con diferentes entradas. Puede llamar a funciones dentro de las llamadas de funciones:

> isOdd (square 15);;
val it: bool = true

También puede usar el operador de desvío de canalización para canalizar el valor en las dos funciones:

> 15 |> square |> isOdd;;
val it: bool = true

El operador de desvío de canalización, etc., se tratan en tutoriales posteriores.

Esto es solo un vistazo de lo que puede hacer con F# interactivo. Para más información, consulte Programación interactiva con F#.

Pasos siguientes

Si aún no lo ha hecho, consulte el Paseo por F# que trata algunas de las características principales de F#. Le dará información general sobre algunas de las funcionalidades de F# y proporciona ejemplos de código extensos que puede copiar en Visual Studio para Mac y ejecutar. También hay algunos recursos externos excelentes que puede usar que se muestran en la Guía de F#.

Consulte también