Cvičení – vzory funkcí
V tomto cvičení se zaměřte na použití některých funkčních vzorů, které jste učili. Pracujte také na kódu, který napsali vaši kolegové, a zapojte ho společně s operátorem kanálu.
Vytvořit aplikaci
Jak už bylo zmíněno, vaši kolegové byli zaneprázdněni psaním kódu. Tady je:
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
Kód se skládá z různých částí, které vám pomůžou implementovat hru karet. Co je to za úkol? Vaším úkolem je vzít balíček karet, prohazovat ho, vzít první tři karty a pak vytisknout výsledky.
Vytvořte nový projekt pomocí:
dotnet new console --language F# -o Cards cd CardsNahraďte kód v souboru Program.fs kódem, který jste dostali.
Vytvořte kanál přidáním následujícího řádku na konec:
cards |> shuffle |> take 3 |> printAllTento kód volá funkce
shuffle(),take()aprintAll()v sekvenci zleva doprava. Výsledky výstupushuffle()se liší, protože metoda zavádí náhodný prvek.Spusťte projekt voláním
dotnet run.dotnet runMěli byste vidět, že se vytisknou tři karty se správným popisem a oblekem. Tady je příklad výstupu toho, jak může vypadat:
Ace of Hearts 9 of Hearts 7 of Hearts
Gratulujeme! Ty a tvůj tým jste vytvořili začátek aplikace pro karty. Také jste úspěšně použili potrubí, které umožňuje volat funkce v sekvenci, přičemž všechny se vztahují na seznam karet.