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:
- Visual Studio Code con el Kit de desarrollo de C# y las extensiones relacionadas, como .NET MAUI y Unity.
- Visual Studio que se ejecuta en Windows en una máquina virtual en Mac.
- Visual Studio que se ejecuta en Windows en una máquina virtual en la nube.
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:
En el menú Archivo, seleccione Nueva solución.
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.
En la aplicación de consola, cambie C# a F# si es necesario. Elija el botón Siguiente para avanzar.
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.
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de