Study
Elixir

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.

Editor Latihan

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.