Study
Haskell

Operator ($) dan Komposisi Fungsi (.)

Penjelasan

Operator `$` (function application) punya prioritas PALING RENDAH dan asosiatif ke kanan — kegunaannya cuma satu: menghindari kurung berlapis-lapis. `f $ x` sama persis dengan `f (x)`, tapi jadi berguna sekali saat `x` sendiri adalah ekspresi panjang. Operator `.` (komposisi fungsi) menggabungkan dua fungsi jadi satu: `(f . g) x` sama dengan `f (g x)` — jalankan `g` dulu, hasilnya dioper ke `f`.

Contoh Konsep

-- Tanpa $, kurung jadi berlapis-lapis
print (length (filter even [1..20]))

-- Dengan $, jauh lebih rapi, tanpa kurung penutup bertumpuk
print $ length $ filter even [1..20]

-- Komposisi fungsi dengan (.)
genapDanKuadrat :: [Int] -> [Int]
genapDanKuadrat = map (^2) . filter even

genapDanKuadrat [1..10]   -- [4, 16, 36, 64, 100]

Praktikum

Tulis ulang ekspresi `print (sum (map (*2) [1..5]))` memakai operator $ supaya tanpa kurung berlapis.

Editor Latihan

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

Tips

Kalau bingung kapan pakai `$` vs `.`: pakai `$` untuk menghindari kurung di satu titik pemanggilan, dan pakai `.` kalau kamu ingin membuat FUNGSI BARU dari gabungan beberapa fungsi (tanpa perlu menyebutkan parameternya secara eksplisit).