Enum Module: map, filter, reduce
Penjelasan
Modul `Enum` adalah kumpulan fungsi standar untuk mengolah collection apa pun (list, map, range) — `Enum.map` mentransformasi tiap elemen, `Enum.filter` menyaring berdasarkan kondisi, `Enum.reduce` menggabungkan semua elemen jadi satu nilai memakai fungsi akumulator. Fungsi-fungsi ini adalah pekerja utama gaya functional Elixir, sering dirangkai lewat pipe operator.
Contoh Konsep
angka = [1, 2, 3, 4, 5]
Enum.map(angka, fn x -> x * x end) # [1, 4, 9, 16, 25]
Enum.filter(angka, fn x -> rem(x, 2) == 0 end) # [2, 4]
Enum.reduce(angka, 0, fn x, acc -> x + acc end) # 15
# Dirangkai dengan pipe
angka
|> Enum.filter(fn x -> rem(x, 2) == 0 end)
|> Enum.map(fn x -> x * 10 end)
# [20, 40]
Praktikum
Dari list 1..10, pakai Enum.filter untuk mengambil angka genap, lalu Enum.map untuk mengalikannya dengan 10, rangkai keduanya dengan pipe operator.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
`Enum` bekerja pada collection yang sudah "jadi" (dievaluasi penuh) — kalau kamu butuh operasi lazy pada data besar/tak terhingga, ada modul `Stream` yang API-nya mirip tapi bekerja lazy.