Exerciții - modele de funcții
Î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.
Creați un proiect nou cu:
dotnet new console --language F# -o Cards cd CardsÎnlocuiți codul din fișierul Program.fs cu codul dat.
Creați un canal adăugând următoarea linie la sfârșit:
cards |> shuffle |> take 3 |> printAllAcest cod apelează funcțiile
shuffle(),take()șiprintAll()într-o secvență de la stânga la dreapta. Rezultatele rezultatului variază deoarece metodashuffle()introduce un element aleator.Rulați proiectul apelând
dotnet run.dotnet runAr 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.