Ejercicio: Funciones

Completado

En este ejercicio, hace el código reutilizable. Se trata de código escrito por otro programador del equipo, pero nuestra labor es convertirlo en funciones.

Creación de funciones

Empiece creando un scaffolding para un nuevo proyecto de F# y, luego, tome un fragmento de código y conviértalo en una función con parámetros.

  1. Cree un proyecto de F# ejecutando dotnet new.

    dotnet new console --language F# -o Functions
    cd Functions
    

    Ahora que tiene un nuevo proyecto, echemos un vistazo al código.

    Este es el código de nuestro compañero.

    let no = card % 13
    if no = 1 then "Ace"
    elif no = 0 then "King"
    elif no = 12 then "Queen"
    elif no = 11 then "Jack"
    else string no
    
  2. Reemplace el código predeterminado del archivo Program.cs por el código siguiente:

    let cardFace card = 
       let no = card % 13
       if no = 1 then "Ace"
       elif no = 0 then "King"
       elif no = 12 then "Queen"
       elif no = 11 then "Jack"
       else string no
    

    La primera línea de este código let cardFace card lo convierte en una función. Ahora es una función denominada cardface() que toma el parámetro card.

  3. Agregue el código siguiente bajo la función cardface().

    printfn "%s" (cardFace 11)
    
  4. Ejecute el proyecto llamando a dotnet run en la consola.

    dotnet run
    

    Ahora, aparece la siguiente salida:

    Jack
    

Enhorabuena. Hemos tomado un fragmento de código que queríamos que fuera reutilizable y lo hemos convertido en una función.

Adición de tipos

Ha convertido el código de su compañero en una función. Para que este código sea más legible, decidimos agregarle definiciones de tipos.

  1. Modifique la función existente cardface() para que se parezca a esta:

    let cardFace (card:int) = 
        let no = card % 13
        if no = 1 then "Ace"
        elif no = 0 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    
  2. Ahora, ejecute el proyecto dotnet run.

    dotnet run
    

    Ahora, aparece la siguiente salida:

    Jack
    

    El código sigue funcionando, solamente hemos hecho que sea más claro agregando un tipo al parámetro de entrada.

  3. Una vez que la función cardface() tenga este aspecto:

    let cardFace (card:int) :string = 
        let no = card % 13
        if no = 14 || no = 1 then "Ace"
        elif no = 13 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    

    Llegado este punto, hemos agregado un tipo de valor devuelto a la función :string, lo que significa que la función devuelve una cadena.

  4. Ejecute el proyecto dotnet run.

    dotnet run
    

    Una vez más, debería ver la salida siguiente:

    Jack
    

Enhorabuena. Ahora, el código tiene tipos agregados.