Exerciții - modele de funcții

Finalizat

În acest exercițiu, concentrați-vă pe aplicarea unor modele funcționale pe care le-ați învățat. De asemenea, lucrați la codul scris de colegii dvs. și fuzionați-l împreună cu un operator de canalizare.

Crearea unei aplicații

După cum am menționat, colegii dvs. au fost ocupați să scrie cod. Aici este:

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 

Codul constă din diferite părți care vă ajută să implementați un joc de cărți. Deci, care este sarcina? Sarcina ta este să iei un pachet de cărți, să-l amesteci, să iei primele trei cărți, apoi să imprimi rezultatele.

  1. Creați un proiect nou cu:

    dotnet new console --language F# -o Cards
    cd Cards
    
  2. Înlocuiți codul din fișierul Program.fs cu codul dat.

  3. Creați un canal adăugând următoarea linie la sfârșit:

    cards |> shuffle |> take 3 |> printAll
    

    Acest cod apelează funcțiile shuffle(), take()și printAll() într-o secvență de la stânga la dreapta. Rezultatele rezultatului variază deoarece metoda shuffle() introduce un element aleator.

  4. Rulați proiectul apelând dotnet run.

    dotnet run
    

    Ar trebui să vedeți trei cărți imprimate cu descrierea corectă și costumul lor. Iată un exemplu de rezultat al felului în care poate arăta:

    Ace of Hearts
    9 of Hearts
    7 of Hearts
    

Felicitări! Dvs. și echipa dvs. ați creat începutul unei aplicații de card. De asemenea, ați aplicat cu succes un canal care vă permite să apelați funcții într-o secvență, toate acestea se aplică la o listă de fișe.