Memahami Kata Kunci 'asumsikan' dalam Fungsi Haskell
Kata kunci `assumes` di Haskell digunakan untuk menentukan prasyarat atau asumsi yang harus benar agar fungsi dapat diterapkan. Dengan kata lain, fungsi ini menentukan kondisi yang harus dipenuhi sebelum fungsi dapat dipanggil.
Sebagai contoh, perhatikan fungsi berikut:
```
f :: Int -> Int
f x = x + 1
```
Fungsi ini menggunakan bilangan bulat `x` dan mengembalikan penerusnya (yaitu, `x + 1`). Namun fungsi ini tidak berlaku jika `x` negatif, karena hasil `x + 1` juga akan negatif. Untuk menentukan asumsi ini, kita dapat menggunakan kata kunci `assumes`:
```
f :: Int -> Int diasumsikan (x >= 0)
f x = x + 1
```
Sekarang, fungsi `f` hanya dapat dipanggil dengan bilangan bulat positif, dan jika bilangan bulat negatif dilewatkan sebagai argumen, compiler akan memunculkan error.
Demikian pula, kita dapat menggunakan kata kunci `assumes` untuk menentukan asumsi atau prasyarat lain yang harus benar agar suatu fungsi dapat diterapkan . Misalnya:
```
g :: Int -> Int mengasumsikan (genap x)
g x = x + 1
```
Fungsi ini mengambil bilangan bulat `x` dan mengembalikan penerusnya, tetapi hanya jika `x` genap. Jika `x` ganjil, compiler akan memunculkan error.
Singkatnya, kata kunci `assumes` di Haskell digunakan untuk menentukan asumsi atau prasyarat yang harus benar agar suatu fungsi dapat diterapkan. Hal ini memungkinkan kita untuk menyatakan batasan pada nilai masukan yang dapat diterima suatu fungsi, dan dapat membantu mencegah kesalahan serta meningkatkan keandalan kode kita.