Exercício – Padrões de função
Neste exercício, concentre-se na aplicação de alguns dos padrões funcionais que foram ensinados. Trabalhe também no código escrito pelos seus colegas e combine-o com um operador de pipeline.
Criar um aplicativo
Como mencionado, seus colegas estavam ocupados escrevendo código. Aqui está:
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
O código consiste em diferentes partes que ajudarão você a implementar um jogo de cartas. E qual é a tarefa? Sua tarefa é pegar um baralho de cartas, embaralhá-lo, pegar as três cartas superiores e depois imprimir os resultados.
Crie um projeto com:
dotnet new console --language F# -o Cards cd CardsSubstitua o código no arquivo Program.fs pelo código que você recebeu.
Crie um pipeline adicionando a seguinte linha ao final:
cards |> shuffle |> take 3 |> printAllEsse código chama as funções
shuffle(),take()eprintAll()em uma sequência da esquerda para a direita. Os resultados da saída variam porque o métodoshuffle()introduz um elemento aleatório.Execute o projeto chamando
dotnet run.dotnet runVocê verá três cartões sendo impressos com sua descrição e termo adequados. Aqui está uma saída de exemplo desse resultado:
Ace of Hearts 9 of Hearts 7 of Hearts
Parabéns! Você e sua equipe conseguiram criar o início de um aplicativo de cartas. Você também aplicou com sucesso um pipeline que permite que você chame funções em uma sequência que se aplicam a uma lista de cartas.