FB18 - Das Forum für Informatik

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

Probleme mit der Probeklausur

Probleme mit der Probeklausur 2002-02-16 16:31
Faleiro
Ich habe jetzt (endlich :-) den Scheme-Teil der Probeklausur "geschrieben" und bin wirklich überrascht, wie einfach das war.

OK, beim Prolog-Teil stand man auch nicht gerade vor unlösbaren Problemen, ganz im Gegensatz zur echten Klausur :-), aber hier erst?? Die erste Aufgabe dauert auch bei gründlicher Bearbeitung ca. 5 Minuten, und damit hat man schon 15 Punkte!
Ist schon famos, wenn 25 Pkte. die Hälfte sind, dann hat man noch 55 Minuten, um sich 10 weitere zu erkämpfen. ;-)


Hat jemand mitgeschrieben, als die Probeklausur in der Großgruppenübung durchgegangen wurde?

In dem Musterlösungs-PDF-File, welches hier im Forum mal angeboten wurde, wird behauptet, (4a) und (4b) seien beides lineare Rekusionen. Meiner Meinung nach ist (4b) aber endrekursiv, da hier niemals das Ergebnis eines rekursiven Aufrufes noch mit einem anderen Wert verknüpft wird. Das Ergebnis wird also beim rekursiven Aufstieg immer einfach "durchgegeben", so daß nicht für jede Instanz zusätzlicher Speicher reserviert werden muß.
Würde auch mehr Sinn machen, wenn von jedem eines vorhanden wäre.


Außerdem: curry. Seufz. Wenn ich den Aufruf ((curry funktion 2 3 4 5) 6) mache, dann "baut" Scheme daraus doch intern (funktion 2 3 4 5 6), oder?

Was tut aber rcurry in der gleichen Situation? "Baut" es daraus (funktion 6 2 3 4 5) oder (funktion 5 4 3 2 6) oder (funktion 6 5 4 3 2) ….

Es ist die Formulierung "von rechts nach links" in der Funktionsübersicht, die mir Probleme bereitet. X-|

Re: Probleme mit der Probeklausur 2002-02-16 18:05
Slater
bei den rekursionen bin ich im skript noch nicht,
aber curry lässt sich ja ganz elegant in scheme prüfen


(define (xlist x y z) (list x y z))

((rcurry xlist 2 3) 1) -> (1 2 3)

((rcurry xlist 3 2) 1) -> (1 3 2)

daraus sollte man das eindeutig erkennen, was sich schlecht beschreiben lässt,
is so ein test nicht schneller als ein post zu schreiben? [img]http://images.rapidforum.com/images/i22.gif[/img]


Re: Probleme mit der Probeklausur 2002-02-16 18:45
Slater
so als frischgebackener rekusionsexperte stimme ich dir mal zu, b) ist eindeutig endrekursiv,
die begründung bei a) in der musterlösung ist auch ziemlich daneben,
interessant ist es, ob bei a) schon eine lineare-rekursive alternative (die als steigerung womöglich vielleicht nie durchlaufen wird) unter lauter endrekursiven alternativen schon zu 'linear' führt

böses beispiel:

(define (length_acc xs acc)
(cond ((#f) (+ 1 (length_acc xs acc)))
((null? xs) acc)
(else (length_acc (cdr xs) (+ 1 acc)))))

(define (my_length list) (length_acc xs 0))

öhh, auf einmal linear-rekursiv im gegensatz zu endrekursiv normalerweise?, oder interpretationssache?, oder undefiniert?



Re: Probleme mit der Probeklausur 2002-02-16 19:54
Christoph
ich würde sagen: Dieses Beispiel ist endrekursiv, da in
der Realität niemals die lineare Rek. vorkommen wird.
Also Einordnung abhängig von der Wirkungsweise der
Funktion, nicht abhängig vom Code… Aber wie schon
gesagt: Das ist wohl tatsächlich Interpretationssache.
Aber so ein Fall wird selbstverständlich auch nicht
drankommen…

Re: Probleme mit der Probeklausur 2002-02-16 20:45
Faleiro
Slater: Ja, der Test ist schneller zu schreiben – aber auch nur, wenn einem der Trick mit "list" einfällt. :-)
Mir sind vorhin nur + und * eingefallen, und damit geht das irgendwie schlecht. ;-))
Danke!

Eine von mehreren Alternativen, die lineare Rekursion verursacht, reicht meiner Meinung nach aus, um der Funktion das Attribut "endrekursiv" wieder abzunehmen. Nur so macht es logisch Sinn. Dein Beispiel möchte ich trotzdem lieber nicht gesehen haben, tirili ;-)

Ich denke übrigens auch, daß so einige der Begründungen in den Musterlösungen mangelhaft sind. Hatte mich schon beim Prolog-Teil gefragt, ob die Leiter des P-Zyklus sich überhaupt darum gekümmert haben, welche Musterlösungen in Umlauf geraten – zumindest scheint sie keiner durchgelesen zu haben. ;-)

Re: Probleme mit der Probeklausur 2002-02-17 10:38
Popcorn
Joah. Was da bei 2 und 3 steht ist ja auch recht arm. Anyway. Nur noch mal zur Bestätigung: Leonie hat beim Durchgehen der Probeklausur gesagt, das 4b Endrekursiv ist.