Fungsi Pada OCaml
Fungsi memangkas ekspresi agar dipanggil berulang seperti variabel.
Fungsi digunakan untuk memberi tanda pengenal pada ekspresi dalam memangkas penulisan saat membutuhkan.
Perbedaan dengan variabel, fungsi dapat menerima parameter masukan. Secara tidak langsung, Variabel sama dengan fungsi tanpa parameter.
Aturan pembangkitan fungsi
let <nama fungsi> (<parameter>:<tipe data>) : <tipe kembalian> = <ekspresi>
OCaml memeriksa tipe data berdasarkan nilai yang diberikan atau di tulis secara langsung
let luas_segitiga alas tinggi =
(alas *. tinggi) /. 2.
;;
let () =
print_float (luas_segitiga 4. 3.)
;;
Kode di atas sama dengan kode di bawah, dengan menuliskan tipe data secara langsung
let luas_segitiga (alas: float) (tinggi: float) : float =
(alas *. tinggi) /. 2.
;;
let () =
print_float (luas_segitiga 4. 3.)
;;
Fungsi print_float
menampilkan nilai float dari ekspresi (luas_segitiga 4. 3.)
.
Pada REPL akan terlihat tampak fungsi luas segitiga
seperti ini
val luas_segitiga : float -> float -> float = <fun>
Cuplikan kode di atas menggambarkan struktur tipe (type signature) dari fungsi luas_segitiga
.
Terdapat tiga tulisan float
dan <fun>
, posisi pertama dan kedua mewakili tipe dari parameter fungsi (alas
dan tinggi
), yang terakhir tipe data kembalian fungsi dan <fun>
menandakan tipe tersebut adalah fungsi.
Fungsi tanpa kembalian akan mengembalikan ()
disebut unit
, secara bawaan.
Fungsi mengembalikan nilai dari hasil ekspresi terakhir pada fungsi, dalam contoh ini (alas *. tinggi) /. 2.
pada fungsi luas_segitiga
.