Pattern Matching Pada OCaml
Pemilihan ekspresi berdasarkan evaluasi kecocokan pola.
Pattern Matching atau Pencocokan Pola merupakan pemilihan dengan pencocokan pola nilai dari data.
Berbeda dengan Pemilihan IF
yang mengevaluasi nilai bool (true/false) dari ekspresi.
Pattern Matching dibangkitkan dengan ekspresi match
match <ekspresi> with
<pola> -> <ekspr>
| <pola> -> <ekspr>
| _ -> <ekspr>
;;
Persamaan dengan Pemilihan IF
if <ekspresi> == <pola> then <ekspr>
else if <ekspresi> == <pola> then <ekspr>
else <ekspr>
;;
Contoh pengguna Pattern Matching
let rec faktorial batas hasil =
match batas with
0 -> hasil
| _ -> faktorial (batas - 1) (hasil * batas)
;;
Pattern Matching berlaku untuk tipe bernilai banyak seperti List dan Tuples.
Contoh Pattern Matching pada List
let rec sigma deret =
match deret with
[] -> 0
| head :: tail -> head + sigma tail
;;
Pada bagian head :: tail
, List di pecah dan bagian nilai paling kiri (head list
) di simpan dalam variable head
.
Sisanya keseluruhan List tanpa head
(tail list
) disimpan dalam variabel tail
.