Mach alles im REPL (erl). Kein Perfektionismus, einfach ausprobieren.
🟢 Challenge 1 – einfache Funktionen
Definiere:
Triple = fun(X) -> X * 3 end.
👉 Teste:
Triple(3)Triple(0)Triple(-2)
👉 Mini-Lernziel:
Funktionen sind einfach Werte.
🟡 Challenge 2 – Pattern Matching bewusst nutzen
IsZero = fun
(0) -> true;
(_) -> false
end.
👉 Teste:
IsZero(0)IsZero(5)
👉 Versuch es kaputt zu machen:
IsZero("0")
👉 Lernziel: Pattern Matching ist kein if – es ist Strukturprüfung.
🟠Challenge 3 – Liste zerlegen
First = fun([H | _]) -> H end.
👉 Teste:
First([10,20,30])
👉 Jetzt bewusst Fehler erzeugen:
First([])
👉 Lernziel: Erlang schützt dich nicht vor allem – du musst Patterns bewusst wählen.
🔴 Challenge 4 – Sicherer machen (denk wie ein Erlang-Dev)
Verbessere die Funktion:
SafeFirst = fun
([H | _]) -> H;
([]) -> empty
end.
👉 Teste:
SafeFirst([])SafeFirst([1,2,3])
👉 Lernziel: Mehrere Pattern = eingebautes “Control Flow”
🔵 Challenge 5 – Mini-Kombination
Jetzt wird’s interessant:
DescribeList = fun
([]) -> empty;
([_]) -> single;
([_, _ | _]) -> multiple
end.
👉 Teste:
[][1][1,2][1,2,3]
👉 Lernziel: Du denkst nicht mehr in Schleifen – sondern in Formen von Daten.
đź§ Bonus (wenn du Lust hast)
Das hier ist der erste kleine “Mindshift”-Moment:
[H | T] = [1,2,3].
vs.
[H | T] = [].
👉 Beobachte genau, was passiert.
⚠️ Was heute wichtiger ist als “richtig lösen”
- Dinge kaputt machen âś…
- Fehlermeldungen lesen âś…
- Muster erkennen âś…
Nicht wichtig:
- Schönheit des Codes
- Best Practices
- Performance