Latihan - Pola fungsi
Dalam latihan ini, fokus pada penerapan beberapa pola fungsional yang anda diajarkan. Selain itu, kerjakan kode yang ditulis oleh kolega Anda dan sekeringkan bersama dengan operator alur.
Membuat aplikasi
Seperti yang disebutkan, kolega Anda sibuk menulis kode. Ini dia:
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
Kode ini terdiri dari berbagai bagian yang membantu Anda menerapkan permainan kartu. Jadi, apa tugasnya? Tugas Anda adalah mengambil setumpuk kartu, mengocoknya, mengambil tiga kartu teratas, lalu mencetak hasilnya.
Buat proyek baru dengan:
dotnet new console --language F# -o Cards cd CardsMengganti kode dalam file Program.fs dengan kode yang telah Anda berikan.
Membuat alur dengan menambahkan baris berikut di akhir:
cards |> shuffle |> take 3 |> printAllKode ini memanggil fungsi
shuffle(),take(), danprintAll()secara berurutan dari kiri ke kanan. Hasil output bervariasi karena metodeshuffle()memperkenalkan elemen acak.Jalankan proyek dengan memanggil
dotnet run.dotnet runAnda akan melihat tiga kartu dicetak dengan deskripsi dan setelan yang sesuai. Berikut adalah contoh output dari tampilannya:
Ace of Hearts 9 of Hearts 7 of Hearts
Selamat! Anda dan tim Anda telah membangun bagian awal aplikasi kartu. Anda juga telah berhasil menerapkan alur yang memungkinkan Anda memanggil fungsi secara berurutan, yang semuanya berlaku untuk daftar kartu.