Ejercicio: patrones de función

Completado

En este ejercicio, céntrese en aplicar algunos de los patrones funcionales que se han enseñado. Asimismo, trabaje con el código escrito por los compañeros y fusiónelo por completo con un operador de canalización.

Creación de una aplicación

Como ya hemos dicho, nuestros compañeros han estado ocupados escribiendo código. Este es:

let cards = [21; 3; 1; 7; 9; 23]
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

let suit card =
    let no = card / 13
    if no = 0 then "Hearts"
    elif no = 1 then "Spades"
    elif no = 2 then "Diamonds"
    else "Clubs"

let shuffle list =
    let random = System.Random()
    list |> List.sortBy (fun x -> random.Next())

let printCard card = printfn "%s of %s" (cardFace card) (suit card)

let printAll list = List.iter(fun x -> printCard(x)) list

let take (no:int) (list) = List.take no list 

Este código se compone de diferentes partes que sirven para implementar un juego de naipes. Vale. ¿Qué hay que hacer? Lo que tenemos que hacer es tomar una baraja de naipes, barajarla, repartir los tres primeros naipes y, luego, imprimir los resultados.

  1. Cree un proyecto con lo siguiente:

    dotnet new console --language F# -o Cards
    cd Cards
    
  2. Reemplace el código del archivo Program.fs con el código que se le ha proporcionado.

  3. Cree una canalización agregando la siguiente línea al final:

    cards |> shuffle |> take 3 |> printAll
    

    Este código llama a las funciones shuffle(), take() y printAll() en una secuencia de izquierda a derecha. Los resultados de salida varían, ya que el método shuffle() introduce un elemento aleatorio.

  4. Para ejecutar el proyecto, llame a dotnet run.

    dotnet run
    

    Deberían aparecer tres naipes con la descripción y el palo adecuados. Esta es una salida de ejemplo del aspecto que puede tener:

    Ace of Hearts
    9 of Hearts
    7 of Hearts
    

Enhorabuena. Junto con nuestro equipo, hemos logrado crear el inicio de una aplicación de juego de naipes. También hemos usado correctamente una canalización que permite llamar funciones en secuencia, todas ellas aplicables a una lista de naipes.