Esercizio - Modelli di funzione
In questo esercizio concentrarsi sull'applicazione di alcuni dei modelli di funzione appresi. Lavora anche sul codice scritto dai tuoi colleghi e uniscilo con un operatore di pipeline.
Crea un'app
Come già accennato, i colleghi si sono occupati della scrittura del codice. Ecco il risultato:
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
Il codice è costituito da parti diverse che consentono di implementare un gioco di carte. In che cosa consiste l'attività da svolgere? L'attività consiste nel mischiare un mazzo di carte, prendere le prime tre carte e quindi stampare i risultati.
Creare un nuovo progetto con:
dotnet new console --language F# -o Cards cd CardsSostituire il codice nel file Program.fs con il codice specificato.
Creare una pipeline aggiungendo la riga seguente alla fine:
cards |> shuffle |> take 3 |> printAllQuesto codice chiama le funzioni
shuffle(),take()eprintAll(), in sequenza da sinistra a destra. I risultati dell'output variano, perché il metodoshuffle()introduce un elemento casuale.Eseguire il progetto chiamando
dotnet run.dotnet runVerranno visualizzate tre carte stampate con la descrizione e il seme corrispondenti. Ecco un esempio di come potrebbe apparire:
Ace of Hearts 9 of Hearts 7 of Hearts
Complimenti. Insieme al team è stato scritto l'inizio di un'applicazione per un gioco di carte. Hai applicato con successo una pipeline che ti consente di chiamare funzioni in una sequenza, tutte applicate a un elenco di carte.