# Übungsaufgabe 2: Maybe (optional) ## Einführung Öffne GHCi und versuche, eine leere Liste an die Funktion *head* zu übergeben. Was passiert? ## Anweisungen Die Standardfunktionen *head*, *tail*, *last* und *init* sind für leere Listen problematisch, weil sie Fehler werfen. Dein Ziel ist es, eigene Versionen dieser Funktionen zu schreiben, die nie fehlschlagen. Die Funktionen sollen *Just x* zurückgeben, wenn die Liste mindestens ein Element enthält, und *Nothing*, wenn die Liste leer ist. So könnte die Typannotation deiner sicheren Funktion beispielsweise aussehen: ```safeHead :: [a] -> Maybe a``` ## Ausführen und Testen Kompiliere den Code, führe das Programm aus und überprüfe die Ausgaben. Alle Ausgaben sollten *True* sein, wenn *Just* und *Maybe* korrekt implementiert wurden.