Study
Elixir

Guard Clauses di Elixir

Penjelasan

Guard clause (`when kondisi`) menambahkan syarat tambahan pada function head atau case branch — dipakai kalau pattern matching bentuk saja belum cukup spesifik, dan butuh pengecekan NILAI juga. Hanya operator dan fungsi tertentu (built-in) yang boleh dipakai di dalam guard, bukan sembarang fungsi kustom.

Contoh Konsep

defmodule Kategori do
  def umur(u) when u < 13, do: "Anak"
  def umur(u) when u < 18, do: "Remaja"
  def umur(_u), do: "Dewasa"
end

Kategori.umur(10)   # "Anak"
Kategori.umur(16)   # "Remaja"
Kategori.umur(25)   # "Dewasa"

Praktikum

Buat module Predikat dengan fungsi dari(nilai) yang memakai guard when untuk mengembalikan "A" (nilai >= 85), "B" (nilai >= 70), atau "C" (selain itu).

Editor Latihan

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

Tips

Guard clause TIDAK boleh memanggil fungsi kustom biasa (hanya fungsi tertentu dari daftar resmi Erlang/Elixir yang "bebas efek samping" dan aman dipanggil) — kalau butuh logika kompleks, hitung dulu di dalam body fungsi, bukan di guard.