Study
← Semua Kategori

Haskell

Pengenalan Haskell

Pengertian Haskell, bahasa pure functional programming dengan static typing kuat dan lazy evaluation.

IO & Do Notation di Haskell

Bagaimana Haskell yang pure functional tetap bisa melakukan aksi IO (cetak layar, baca input) lewat tipe IO dan blok do.

Binding & Tipe Data Dasar

Binding nilai ke nama di Haskell (bukan "variabel" karena immutable), dan tipe data dasar: Int, Double, Bool, Char, String.

Fungsi di Haskell

Mendefinisikan fungsi di Haskell dengan pola nama parameter = ekspresi, tanpa keyword return.

If-Then-Else & Guards

if sebagai ekspresi (wajib punya else) di Haskell, dan guards sebagai alternatif yang lebih ringkas untuk banyak kondisi.

List di Haskell

Struktur data list sebagai fondasi Haskell, operator (:) untuk cons, dan fungsi list dasar.

List Comprehension

Membuat list baru dari list lain dengan sintaks ringkas [ekspresi | x <- list, kondisi], mirip notasi matematika himpunan.

Rekursi di Haskell

Rekursi sebagai pengganti loop di Haskell, dengan base case dan recursive case.

Higher-Order Function: map, filter, foldr

Fungsi yang menerima fungsi lain sebagai parameter — map, filter, dan fold sebagai pengganti idiomatik loop manual.

Tuple di Haskell

Tuple untuk mengelompokkan nilai bertipe BERBEDA dengan jumlah tetap, berbeda dari list yang harus satu tipe.

Pattern Matching di Haskell

Mendefinisikan fungsi dengan beberapa persamaan berbeda berdasarkan bentuk/nilai parameter (pattern matching).

Algebraic Data Type (data)

Membuat tipe data kustom dengan keyword data, termasuk tipe enum sederhana dan tipe dengan field.

Maybe: Menghindari Null

Tipe Maybe (Just nilai atau Nothing) sebagai cara Haskell menghindari null/undefined sepenuhnya.

Type Class Dasar: Eq, Ord, Show

Type class sebagai cara Haskell mendefinisikan "kemampuan" yang bisa dimiliki banyak tipe berbeda, mirip interface.

Let & Where

Mendefinisikan binding sementara di dalam fungsi dengan let...in dan where.

Lazy Evaluation di Haskell

Haskell hanya menghitung nilai saat benar-benar dibutuhkan (lazy), memungkinkan struktur data tak terhingga.

Currying & Partial Application

Semua fungsi Haskell sebenarnya menerima satu parameter (curried), memungkinkan partial application yang alami.

Operator ($) dan Komposisi Fungsi (.)

Operator ($) untuk menghindari kurung berlapis, dan operator (.) untuk menggabungkan beberapa fungsi jadi satu.

Tugas Akhir

Latihan akhir menggabungkan tipe data kustom, pattern matching, Maybe, dan higher-order function dalam satu program Haskell.