Study
Haskell

Rekursi di Haskell

Penjelasan

Haskell TIDAK punya loop `for`/`while` seperti bahasa imperatif — semua pengulangan diekspresikan lewat REKURSI: fungsi memanggil dirinya sendiri dengan input yang "lebih kecil", sampai mencapai base case (kondisi berhenti). Setiap fungsi rekursif butuh minimal satu base case supaya tidak berulang tanpa akhir.

Contoh Konsep

faktorial :: Int -> Int
faktorial 0 = 1                          -- base case
faktorial n = n * faktorial (n - 1)      -- recursive case

-- faktorial 5 = 5 * faktorial 4 = 5 * 4 * faktorial 3 = ... = 120

jumlahList :: [Int] -> Int
jumlahList [] = 0                        -- base case: list kosong
jumlahList (x:xs) = x + jumlahList xs     -- x = elemen pertama, xs = sisanya

Praktikum

Buat fungsi rekursif panjangList :: [Int] -> Int yang menghitung jumlah elemen sebuah list (tanpa memakai fungsi length bawaan).

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Pola `(x:xs)` sangat umum di fungsi rekursif Haskell — `x` adalah elemen pertama (head), `xs` adalah sisanya (tail), dan fungsi biasanya memproses `x` lalu memanggil dirinya sendiri secara rekursif pada `xs`.