Eventos
Compilación de Intelligent Apps
17 mar, 23 - 21 mar, 23
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Puede escribir F# en Visual Studio Code con el complemento Ionide de para disfrutar de una excelente experiencia multiplataforma y ligera en el entorno de desarrollo integrado (IDE), con IntelliSense y refactorizaciones de código. Visite Ionide.io para obtener más información sobre el complemento.
Nota
Antes de empezar, asegúrese de que ha instalado tanto F# como el complemento Ionide.
Para crear un proyecto de F#, abra una línea de comandos y cree un proyecto con la CLI de .NET:
dotnet new console -lang "F#" -o FirstIonideProject
Una vez completado, cambie el directorio al proyecto y abra Visual Studio Code:
cd FirstIonideProject
code .
Una vez que el proyecto se cargue en Visual Studio Code, debería ver el panel Explorador de soluciones de F# en el lado izquierdo de la ventana abierta. Esto significa que Ionide ha cargado correctamente el proyecto que acaba de crear. Puede escribir código en el editor antes de este momento dado, pero una vez que esto sucede, todo ha terminado de cargarse.
Una vez que haya configurado Visual Studio Code para usar scripts de .NET Core, vaya a la vista Explorador de Visual Studio Code y cree un archivo. Asígnele el nombre MyFirstScript.fsx.
Ahora agregue el código siguiente:
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string(word[0]) + "ay"
Esta función convierte una palabra en una forma de Pig Latin, un argot lúdico del inglés. El siguiente paso es evaluarlo mediante F# Interactive (FSI).
Resalte toda la función (debe ser de 11 líneas de longitud). Una vez resaltada, mantenga presionada la tecla Alt y presione Intro. Observará que aparece una ventana de terminal en la parte inferior de la pantalla y debería tener un aspecto similar al siguiente:
Esto hizo tres cosas:
Como lo que ha enviado es una función, ahora puede llamar a esa función con FSI. En la ventana interactiva, escriba lo siguiente:
toPigLatin "banana";;
Debería ver el siguiente resultado:
val it: string = "ananabay"
Ahora, vamos a probar con una vocal como la primera letra. Escriba lo siguiente:
toPigLatin "apple";;
Debería ver el siguiente resultado:
val it: string = "appleyay"
Parece que la función funciona según lo previsto. Enhorabuena, acaba de escribir su primera función de F# en Visual Studio Code y evaluarla con FSI.
Nota
Como puede haber observado, las líneas de FSI finalizan con ;;
. Esto se debe a que FSI permite escribir varias líneas. El ;;
al final permite a FSI saber cuándo finaliza el código.
Si no está seguro de lo que hace realmente el código, este es un paso a paso.
Como puede ver, toPigLatin
es una función que toma una palabra como entrada y la convierte en una representación Pig-Latin de esa palabra. Las reglas para esto son las siguientes:
Si el primer carácter de una palabra comienza con un vocal, agregue "yay" al final de la palabra. Si no comienza con una vocal, mueva ese primer carácter al final de la palabra y agregue "ay".
Es posible que haya observado lo siguiente en FSI:
val toPigLatin: word: string -> string
Esto indica que toPigLatin
es una función que toma un string
como entrada (denominada word
) y devuelve otra string
. Esto se conoce como la firma de tipo de la función, una parte fundamental de F# que es clave para comprender el código de F#. También observará esto si mantiene el puntero sobre la función en Visual Studio Code.
En el cuerpo de la función, observará dos partes distintas:
Una función interna, denominada isVowel
, que determina si un carácter determinado (c
) es una vocal comprobando si coincide con uno de los patrones proporcionados a través de Coincidencia de patrones:
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
Expresión if..then..else
que comprueba si el primer carácter es un vocal y construye un valor devuelto fuera de los caracteres de entrada en función de si el primer carácter era un vocal o no:
if isVowel word[0] then
word + "yay"
else
word[1..] + string(word[0]) + "ay"
Por lo tanto, el flujo de toPigLatin
es el siguiente:
Compruebe si el primer carácter de la palabra de entrada es un vocal. Si es así, adjunte "yay" al final de la palabra. De lo contrario, mueva ese primer carácter al final de la palabra y agregue "ay" a él.
Hay una cosa final que se debe tener en cuenta sobre esto: en F#, no hay ninguna instrucción explícita para retornar desde la función. Esto se debe a que F# está basado en expresiones y la última expresión evaluada en el cuerpo de una función determina el valor devuelto de esa función. Dado que if..then..else
es una expresión, la evaluación del cuerpo del bloque then
o el cuerpo del bloque else
determina el valor devuelto por la función toPigLatin
.
En las secciones anteriores de este artículo se mostró un primer paso común para escribir código de F#: escribir una función inicial y ejecutarla de forma interactiva con FSI. Esto se conoce como desarrollo controlado por REPL, donde REPL significa "Read-Evaluate-Print Loop". Es una excelente manera de experimentar con la funcionalidad hasta que tenga algo que funcione.
El siguiente paso en el desarrollo controlado por REPL es mover el código de trabajo a un archivo de implementación de F#. Después, el compilador de F# puede compilarlo en un ensamblado que se puede ejecutar.
Para empezar, abra el archivo Program.fs que creó anteriormente con la CLI de .NET. Observará que algún código ya está ahí.
A continuación, cree un nuevo module
denominado PigLatin
y copie la función de toPigLatin
que creó anteriormente en ella como tal:
module PigLatin =
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string word[0] + "ay"
Este módulo debe estar por encima de la función main
y debajo de la declaración open System
. El orden de las declaraciones es importante en F#, por lo que deberá definir la función antes de llamarla en un archivo.
Luego, en la función main
, llame a la función de generador de Pig Latin en los argumentos:
[<EntryPoint>]
let main args =
for arg in args do
let newArg = PigLatin.toPigLatin arg
printfn "%s in Pig Latin is: %s" arg newArg
0
Ahora puede ejecutar la aplicación de consola desde la línea de comandos:
dotnet run apple banana
Y verá que genera el mismo resultado que el archivo de script, pero esta vez como un programa en ejecución.
Estas son algunas maneras de solucionar ciertos problemas que puede encontrar:
ionide-fsharp
en el equipo y vuelva a instalar el conjunto de complementos.Ionide es un proyecto de código abierto creado y mantenido por los miembros de la comunidad de F#. Informe de problemas y no dude en contribuir en el repositorio de GitHub de ionide-vscode-fsharp.
También puedes pedir más ayuda a los desarrolladores de Ionide y a la comunidad de F# en el canal de Gitter de Ionide .
Para obtener más información sobre F# y las características del lenguaje, consulte Tour of F#.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Eventos
Compilación de Intelligent Apps
17 mar, 23 - 21 mar, 23
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Skriv din første F#-kode - Training
Konfigurer dit F#-udviklingsmiljø, skriv din første linje af F#-kode, og byg dit første F#-program