🎯 Challenges für Tag 1

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