FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Wie fandet Ihr die Scheme Klausur?

Wie fandet Ihr die Scheme Klausur? 2002-02-19 11:58
Fred
Ich persoenlich fand sie super!

Leider habe ich es nicht geschafft, die Frage nach dem Eintrittspreis des Rentners mit der hoeheren Funktion zu loesen (sondern mit einem endrekursiven Ansatz), aber ansonsten duerften nicht viel Fehler drin sein.

JUHU, FERIEN!!!

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 12:20
Zaphod
Jupp, ich fand die Klausur auch super. Endlich mal eine Klausur, die der Probeklausur entsprach…
Zum Rentner: Da konnte man filter einbauen.

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 12:26
Fred
Ja, das mit dem Filter ist mir gerade beim Kacken eingefallen :-)

(define testliste '((Arbeitsloser . 1) (Rentner . 5) (Kind . 2)))

(define (was-kostet person)
(let ((gefunden (filter (lambda (x) (equal? person (car x))) testliste)))
(if (null? gefunden) "kein Eintrag" (cdar gefunden))))


Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 13:06
Labskaus
Die Klausur an sich war ja ziemlich einfach.
Ich habe mich allerdings ziemlich schwer getan, weil ich den Stoff nicht so drauf hatte. Aber trotzdem hatte ich irgendwie
genug Zeit, um alles in Ruhe im Skript nachzugucken und länger nachzudenken, insofern ging das eigentlich.
Und da ich mir einbilde, daß ich beim Prologteil ganz gut abgeschnitten habe, dürfte insgesamt alles in Ordnung sein.

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 13:22
Fred
Zum Rentner: Da konnte man filter einbauen.
Oh man kann es sogar noch ein bischen eleganter als bei meinem ersten Vorschlag angehen :-)

(define testliste '((Arbeitsloser . 1) (Rentner . 5) (Kind . 2))) (define (was-kostet person) (cdar (filter (lambda (x) (equal? person (car x))) (append testliste (cons (cons person "Kein Eintrag") '())))))

Hoffentlich klappt es jetzt mit der Darstellung des Codes…


Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 13:24
Fred
Hoffentlich klappt es jetzt mit der Darstellung des Codes…

Das ist ja superklein. Geht das auch irgendwie anders?

NW: MTV - Das sind No Doubt??? bäh…

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 14:06
Anonymer User
Ich weiß nicht, wie ich in der Klausur darauf gekommen bin, aber als ich es eben nachprogrammiert habe hat sich doch tatsächlich herausgestellt, daß es *wirklich* funktioniert:

(define (preis kategorie)
(cdr (car (filter (compose (curry eq? kategorie) car) *Preisliste-2002*))))

Man beachte: sämtliche benutzten Funktionen sind entweder höherer Ordnung, oder nur drei Buchstaben lang!
Gruß! Timo

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 15:03
Popcorn
Ich fand die Klausur auch sehr schön. Aber sacht mal, ginge es nicht auch ganz einfach nach dem Prinzip?

(define (Preisfrage Preisklasse)
(caar (members? Preisklasse Preisliste2002)))

Irgendwas hatte ich in der Klausur glaube ich noch anders, aber nichts wesentliches. Habe Scheme aber schon wieder verdrängt, keine Ahnung.

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 15:10
Popcorn
ach mist. nein. des gibt wohl keine Punkte. Pff. Der Punkt mit den doted-pairs war im Revise Report nicht aufgeführt. Und ich dachte, durch den Punkt ist alles geritzt. So was blödes.

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 15:19
TriPhoenix
ach mist. nein. des gibt wohl keine Punkte. Pff. Der Punkt mit den doted-pairs war im Revise Report nicht aufgeführt. Und ich dachte, durch den Punkt ist alles geritzt. So was blödes.
Höh? Dotted pairs sind im revised report doch ausführlich erklärt



Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 15:39
Popcorn
Ja mag sein. Doch. Auf jeden Fall. Aber ich habe da heute morgen noch mal durchgeblättert. Und guck mal bei "members". Das fand ich halt so passend und hab nicht weiter drüber nachgedacht. Und bei den Beispielen war (natürlich) kein dotted pairs dabei. Schade. Hätte ich echt praktisch gefunden.

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 15:39
Anonymer User
Der Rentner noch einfacher:

(define (was-kostet person)
(cdr (assoc person *Eintritt-2002*))
)

ist aber nicht getestet…

mfg Ulf

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 16:07
Anatoly Karpov
Hab's genauso, habs auch grad noch mal in Scheme getestet, funktioniert tadellos ist auch meiner Meinung nach das einfachste, was man bei dieser Aufgabe machen konnte - ausserdem ist es dazu noch am verständlichsten - finde ich jedenfalls!

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 16:20
Anonymer User
Leider fehlt mir der Rest von Aufgabe 5… und sonst aber nur die endrekursive Version 2b. Alles andere habe ich. Ich hoffe das reicht für mich um die Klausur im ganzen zu bestehen, denn in Prolog war ich bestimmt nicht gloriös…

mfg Ulf

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 17:19
Anonymer User
(define (was-kostet person)
(cdr (assoc person *Eintritt-2002*)))
Gibt einen Fehler aus, wenn person nicht enthalten ist in der Preisliste. Sinnvoller wäre eine Textmeldung, wie oben von Fred beschrieben…
Allerdings: (cons person "kein Eintrag")–>???(Fehler?)
(append testliste (list(list person "kein Eintrag"))
oder
(append testliste (list (cons person (cons "kein Eintrag '()))))

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-19 18:13
Slater
es sollte schon ein ordentliches dottet pair sein, also nur:

(append testliste (list (cons person "kein Eintrag")))

(cons person "kein eintrag") evaluiert doch ohne meckern, oder was soll da falsch laufen


Re: Wie fandet Ihr die Scheme Klausur? 2002-02-20 10:18
Faleiro
Das ist ja interessant. Genau die Rentner-Aufgabe hatte ich auch zuerst in panischer Eile (dabei hatte ich noch 30 Minuten Zeit) rekursiv gelöst. Die anderen Teilaufgaben waren dann wohl einfacher, die konnte ich auch mit Fkt. höh. Ord. lösen. Später habe ich preis-von noch umgeschrieben und ähnlich wie Fred erdacht, nur ohne Fehlerabfrage.

Die assoc-Version ist toll, ich dachte auch kurz daran, daß es eine solche Funktion geben sollte, hatte aber keine Ahnung mehr, wie sie hieß.

Die Klausur war sehr schön, damit sollte wohl der Prolog-Teil ausgeglichen werden. :-)

Aber weiß hier noch jemand, was (Aufgabe 2?) der Aufruf (curry + 1) mit closure zu tun haben soll? Ich habe irgendwelchen Mist hingeschrieben und hoffe, daß man das richtige hineininterpretiert. ;-)


Re: Wie fandet Ihr die Scheme Klausur? 2002-02-20 10:36
Slater
ich hab closures vorher kaum verstanden, aber man konnte ja in ruhe 20 min. skript lesen,
der closure von + besteht nicht nur aus der definition der funkiton selber (define (+ x y …) …), sondern auch aus den variablenbindungen in der lokalen umgebung, wie hier x=1,
sowas in der art war da wohl gefragt

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-20 14:22
Liller
Also ich hatte auch eigentlich nur mit der Rentner-Aufgabe Probleme. Der Rest ging. Die Definitionen konnte man ja auch notfalls aus dem Skript abschreiben.
Ich finde Leonie hat ihr Wort gehalten, denn im Gegensatz zur Prologklausur, war diese vom Zeitaufwand und vom Anspruch her gesehen etwa so wie die Probeklausur. Vielmehr kamen einige Sachen genauso oder nur leicht abgewandelt vor, siehe z.B. Aufgabe 1 oder auch die Aufgabe mit den verschiedenen Rekursionen.
Solche Klausuren kann man sich wirklich nur wuenschen, aber ich befuerchte es war nur ein "positiver Ausrutscher" :-/

Re: Wie fandet Ihr die Scheme Klausur? 2002-02-20 22:05
Faleiro
Na ja, ein bißchen zu einfach war es schon. :-) Halt als Ausgleich für den Prolog-Teil…