Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » prog_haskell_2013ss_a   (Übersicht)

Hallo Leute, mir wurden folgende Fragen in der mündlichen Prüfung gestellt:

  1. Was finden Sie an Haskell gut?
  2. Was unterscheidet Haskell von anderen Programmiersprachen?
  3. Wie ist zu erklären, dass Haskell nur einen Parameter hat?
  4. Wie sind algebraische Datentypen in Haskell aufgebaut?
  5. 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.)
  6. 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)
  7. 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.)
  8. Was ist der Vorteil von algebraischen Datentypen? (Pattern-Matching der Konstruktoren)
  9. Wie sind Klassen in Haskell aufgebaut? (class Name parametertyp where …, wichtig, der parametertyp ist notwendig)
  10. Warum funktioniert das Pattern-Matching nicht bei der Implementierung von Methoden in Klassen? (Weil der Parametertyp nicht bekannt ist)
  11. Wie sind Module aufgebaut?
  12. Wie funktiniert das Exportieren? (ohne Klammer = alles, mit Klammer = nur Klammerinhalt)
  13. 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.)
  14. Werden importierte Module selbst wieder exportiert, wenn das Module irgendwo importiert wird? (Wenn in der Klammer nichts steht, ja.)
  15. Was bedeutet das Schlüsselwort „qualified“? (Auf Funktionen zugreifen, durch ihren Präfix. Von Vorteil bei doppelten Funktionsnamen.)
  16. 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.)
  17. 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