Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

blue.sky

Praktikant

  • "blue.sky" started this thread

Posts: 16

Date of registration: Nov 15th 2004

1

Sunday, January 23rd 2005, 9:38pm

Prog I (Scheme) Vorlesung, Endlosschleife

Wie hat Herr Parchmann es geschafft, durch verlagern der Pointer eine Endlosschleife in der Print-Routine zu produzieren? Hat vielleicht jemand ne Ahnung?
Der Tod ist sicher, das Leben jedoch nicht.

derSmutje

Alter Hase

  • "derSmutje" is male

Posts: 295

Date of registration: Dec 7th 2004

2

Monday, January 24th 2005, 11:00am

RE: Prog I (Scheme) Vorlesung, Endlosschleife

Hi!

Du kannst eine Liste in eine Ringstruktur überführen, indem zu du z.B. den Cdr-Teil des letzten Elements der Liste auf ein in Liste weiter vorne befindliches Element verweisen lässt.
Bsp.:
(define liste (list 1 2 3))
(set-cdr! (cddr liste) liste)

Diese Liste hat vom letzten Element wieder einen Verweis auf das Erste.

Im aktuellen Aufgabenblatt der Prog1-Vorlesung ist auch eine test-Prozedur definiert, um festzustellen, ob die vorliegende Strukur eine solche Ringstrukur ist.

Mir fiel aber auf, dass die "print"-Routine meines Schemes eine solche Struktur scheinbar erkennt und bei Ausgabe der oben definierten "liste" folgendes liefert:
#0=(1 2 3 . #0#)
und somit eine Endlosausgabe umgeht

Meine Erklärung ist, dass Herr Parchmann in der Vorlesung seine eigene und simplere (also ohne Fehlererkennung ausgestattete) Ausgaberoutine nutzte!!

Hoffentlich konnte ich helfen!
cg
/join #inf

blue.sky

Praktikant

  • "blue.sky" started this thread

Posts: 16

Date of registration: Nov 15th 2004

3

Monday, January 24th 2005, 4:00pm

RE: Prog I (Scheme) Vorlesung, Endlosschleife

Danke. :)
Der Tod ist sicher, das Leben jedoch nicht.