Pattern Matching di Haskell
Penjelasan
Pattern matching mendefinisikan sebuah fungsi lewat BEBERAPA persamaan (equation) berbeda, masing-masing menangani bentuk atau nilai parameter tertentu — Haskell otomatis mencoba tiap persamaan dari atas ke bawah sampai menemukan yang cocok. Ini alternatif elegan untuk if/else berantai.
Contoh Konsep
-- Pattern matching pada nilai literal
deskripsiAngka :: Int -> String
deskripsiAngka 0 = "nol"
deskripsiAngka 1 = "satu"
deskripsiAngka _ = "banyak" -- _ = wildcard, cocok dengan apa saja
-- Pattern matching pada struktur list
deskripsiList :: [Int] -> String
deskripsiList [] = "kosong"
deskripsiList [x] = "satu elemen: " ++ show x
deskripsiList (x:xs) = "lebih dari satu elemen, diawali " ++ show x
Praktikum
Buat fungsi namaHari :: Int -> String memakai pattern matching untuk angka 1-7 (mengembalikan "Senin" sampai "Minggu"), dan _ untuk selain itu mengembalikan "Tidak valid".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Urutan persamaan pattern matching PENTING — Haskell mencoba dari ATAS ke BAWAH dan berhenti di yang pertama cocok, jadi pattern yang lebih spesifik harus ditulis SEBELUM pattern umum seperti `_`.