Introducción a F# en Visual Studio para Mac

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

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 Visual Studio para Mac está abierta:

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

  2. En el cuadro de Project nuevo, hay dos plantillas diferentes para la aplicación de consola. Hay una en Other -> .NET que tiene como destino el .NET Framework. La otra plantilla está en .NET Core -> aplicación que tiene como destino .NET Core. Cualquiera de las plantillas debe funcionar para este artículo.

  3. En 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 quiera para la aplicación. Observe que el panel de vista previa se encuentra en el lado de la pantalla que 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

Vamos a empezar a escribir código primero. Asegúrese de que el Program.fs archivo está abierto y, a continuación, 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 que toma una entrada denominada square y la multiplica por sí x misma. Dado que F# usa inferencia detipos, no es necesario especificar x el tipo de . El compilador de F# entiende los tipos en los que la multiplicación es válida y asignará un tipo a en x función de cómo se llame a square . Si mantiene el puntero square sobre , debería ver lo siguiente:

val square: x:int -> int

Esto es lo que se conoce como firma de tipo de la función. Se puede leer de esta forma: "Square es una función que toma un entero denominado x y genera un entero". Tenga en cuenta que el compilador ha dado el tipo 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 square int conjunto cerrado de tipos. El compilador de F# ha elegido en este momento, pero ajustará la firma de tipo si llama a con un tipo de entrada int square diferente, como float .

Se define otra función, , que se decora con el atributo para decir al compilador de F# que la ejecución del programa main EntryPoint 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, llamamos a la square función con un argumento de 12 . A continuación, el compilador de F# asigna el tipo de para que sea square int -> int (es decir, una función que toma y int genera ). int La llamada a 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, a continuación, imprime el resultado y una nueva printfn línea.

Ejecución de código

Puede ejecutar el código y ver los resultados haciendo clic en Ejecutar en el menú de nivel superior y, a continuación, en 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 Visual Studio para Mac emergente:

12 squared is 144!

¡Enhorabuena! Ha creado su primer proyecto de F# en Visual Studio para Mac, ha escrito una función de F# que ha impreso los resultados de llamar a esa función y ha ejecutado 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 F# interactivo ventana. 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 square la función definida en el código. A continuación, haga clic en Editar en el menú de nivel superior. A continuación, seleccione Enviar selección F# interactivo. Esto ejecuta el código en la F# interactivo ventana. Como alternativa, puede hacer clic con el botón derecho en la selección y elegir Enviar selección para F# interactivo. Debería ver que aparece F# interactivo ventana con lo siguiente en ella:

>

val square: x: int -> int

>

Esto muestra la misma firma de función para la square función, que vio anteriormente al mantener el puntero sobre la función. Dado square que ahora está definido en el 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 nuevo nombre y it muestra el tipo y el valor de it . Tenga en cuenta que debe terminar cada línea con ;; . Así es como F# interactivo cuándo finaliza la llamada de 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, , que toma y isOdd 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 función:

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

También puede usar el operador de canalización hacia delante para canalizar el valor en las dos funciones:

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

El operador de canalización hacia delante, etc., se trata en tutoriales posteriores.

Esto es solo un vistazo a 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 paseo por F#,que trata algunas de las características principales de F#. Le proporcionará información general sobre algunas de las funcionalidades de F# y proporcionará ejemplos de código amplios que puede copiar en Visual Studio para Mac y ejecutar. También hay algunos excelentes recursos externos que puede usar, que se muestran en la Guía de F#.

Vea también