Hallo Leute, mir wurden folgende Fragen in der mündlichen Prüfung gestellt: - Was finden Sie an Haskell gut? - Was unterscheidet Haskell von anderen Programmiersprachen? - Wie ist zu erklären, dass Haskell nur einen Parameter hat? - Wie sind algebraische Datentypen in Haskell aufgebaut? - Es wurden die zwei Implementierungen von einem StandBinTree vorgezeigt. Ein Mal bestand der Konstruktor aus einem Dreier-Tupel, das anderemal wurde er mit Hilfe des Curry-Styles geschrieben. Das war zu erkennen. (Die konkrete Implementierung befindet sich im Skript mit dem Kommentar, Tupelschreibweise und Curry-Style.) - Wie kann man die Show-Funktion auf für einen Datentyp Tree (der aus der Vorlesung) implementieren? Er wollte drei verschiedene Wege hören. (per deriving, per "Instanz-machen" und per eigner Implementierung) - Welche show-Funktion wird für einen Baum t1 ausgeführt, wenn ich selbst eine show-Funktion geschrieben habe und den Tree von show ableiten lasse? (Eingabe in Haskell t1 --> Ausgabe der impliziten show-Funktion. Auf meine eigene Funktion wird nur zugegriffen, wenn ich sie explizit aufrufe, z.B. showTree.) - Was ist der Vorteil von algebraischen Datentypen? (Pattern-Matching der Konstruktoren) - Wie sind Klassen in Haskell aufgebaut? (class Name parametertyp where ..., wichtig, der parametertyp ist notwendig) - Warum funktioniert das Pattern-Matching nicht bei der Implementierung von Methoden in Klassen? (Weil der Parametertyp nicht bekannt ist) - Wie sind Module aufgebaut? - Wie funktiniert das Exportieren? (ohne Klammer = alles, mit Klammer = nur Klammerinhalt) - Was wird exportiert, wenn in der Klammer ein algebraischer Datentyp steht? Werden auch seine Funktionen exportiert? (Nein, nur der Konstruktor, zumindest hatte ich das so in der Prüfung verstanden.) - Werden importierte Module selbst wieder exportiert, wenn das Module irgendwo importiert wird? (Wenn in der Klammer nichts steht, ja.) - Was bedeutet das Schlüsselwort "qualified"? (Auf Funktionen zugreifen, durch ihren Präfix. Von Vorteil bei doppelten Funktionsnamen.) - Was bedeutet das Schlüsselwort "hiding"? (Das was in hiding steht, wird exportiert, aber nicht verwendet. Bin mir nicht mehr zu 100% sicher, ob das so stimmt. In den Vorlesungsfolien stehts aber drin.) - Was ist Lazy Evaluation? (Parameter werden **erst** und **nur soweit** ausgewertet, wie benötigt. Genau so sollte man das sagen.) Ich hoffe ich konnte jemanden damit bei seiner Prüfung helfen. Stehe für weitere Fragen gerne bereit. Grüße Gaku