Pattern Matching Pada OCaml

Pemilihan ekspresi berdasarkan evaluasi kecocokan pola.

Pattern Matching Pada OCaml

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.

Referensi

  1. Code Example , OCaml.org
  2. OCaml for the Skeptical, Pattern Matching