Übung 6, Aufgabe 7 - Metainterpreter
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Was ist denn der genaue Unterschied zwischen Streams und Listen
?
Also:

Also:
Ergo: Gleiche Funktion kann über einen Stream auf die gleiche Weise operieren wie über Listen.In dieser Übung soll gezeigt werden, dass bei normaler Auswertungsreihenfolge Funktionen höherer Ordnung
gleichermaßen mit Listen und Streams funktionieren.
Das ist eine Liste und kann mit my-cons ausgewertet werden und von Prozeduren höherer Ordnung verarbeitet werden -> siehe 3. Teilaufgabe.(define alon (my-cons 1 (my-cons 2 (my-cons 3 (my-cons 4 (my-cons 5 (empty)))))))
Das ist ein Stream, der ebenfalls von my-cons ausgewertet werden kann und kann daher später auch problemlos in der 3. Teilaufgabe von der gleichen Funktion, ohne Fallunterscheidung, verarbeitet werden, die die Liste auch schon manipuliert hat.(define nst (lambda (n) (my-cons n (nst (+ n 1)))))
(define nat (nst 1))
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Wie ist das eigentlich bei der 7.3:
Sollen wir da <> 0 auf beide listen aufein mal anwenden?
Oder > 0 auf alon und dann alterate-nat und anschließend < 0 auf die beiden hintereinnander?
Bin gerade im Poolraum am tüfteln mit einem Komilitonen und wir wissen nicht weiter.
PS: Das problem mit den Streams haben wir gelöst indem wir eine Funktion ähnlich my->cons implementiert haben die anstelle von normalen cons my-cons listen erzeugt. Diese lassen wir dann auf die Streams los bevor wir sie verarbeiten. Sonst gibt es ja ne endlosscheilfe.
lg mcdikki
Sollen wir da <> 0 auf beide listen aufein mal anwenden?
Oder > 0 auf alon und dann alterate-nat und anschließend < 0 auf die beiden hintereinnander?
Bin gerade im Poolraum am tüfteln mit einem Komilitonen und wir wissen nicht weiter.
PS: Das problem mit den Streams haben wir gelöst indem wir eine Funktion ähnlich my->cons implementiert haben die anstelle von normalen cons my-cons listen erzeugt. Diese lassen wir dann auf die Streams los bevor wir sie verarbeiten. Sonst gibt es ja ne endlosscheilfe.
lg mcdikki
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Hmm, ich habe dass aufgefasst, dass du die Liste alon jeweils mit < und dann seperat mit > filterst. Das gleiche mit dem Stream auch in seperaten Aufrufen. So wird ja auch im Endeffekt gezeigt, dass deine Funktion filter auf Listen sowie Streams gleichermaßen funktioniert.Sollen wir da <> 0 auf beide listen aufein mal anwenden?
Oder > 0 auf alon und dann alterate-nat und anschließend < 0 auf die beiden hintereinnander?
Den Zweck verstehe ich irgendwie nicht und sehe auch keine Problematik dabei. Also bei mir gehts ohne perfekt. Aber wäre nett, dass Problem bitte noch mal zu erläutern. Vielleicht habe ich da auch was übersehen.PS: Das problem mit den Streams haben wir gelöst indem wir eine Funktion ähnlich my->cons implementiert haben die anstelle von normalen cons my-cons listen erzeugt. Diese lassen wir dann auf die Streams los bevor wir sie verarbeiten. Sonst gibt es ja ne endlosscheilfe.
Wenn ich filter auf einen Stream anwende bekomme ich eine endlosschleife.
Da das wohl kaum Sinn der Sache ist wollte ich nur teile des Streams filtern.
Dazu wollte ich my->cons verwenden. Da my->cons aber eine echte consliste liefert bricht der metainterpreter zu recht ab.
Daher habe ich eine Funktion implimentiert, die nur einen Teil eines Stream oder einer List als my-cons liste liefert, so das der metainterpreter sie verarbeiten kann.
Da das wohl kaum Sinn der Sache ist wollte ich nur teile des Streams filtern.
Dazu wollte ich my->cons verwenden. Da my->cons aber eine echte consliste liefert bricht der metainterpreter zu recht ab.
Daher habe ich eine Funktion implimentiert, die nur einen Teil eines Stream oder einer List als my-cons liste liefert, so das der metainterpreter sie verarbeiten kann.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Echt? Also mein alterate-nat Stream funktioniert mit meinem filter wunderbar und ich brauche auch gar keine Extrafunktion um Streams auszuwerten. Es ist auch schon ein Stream nat und eine Liste alon definiert. Beides sollte Problemlos mit filter arbeiten. Das ist ja auch das Ziel der Hausübung, nämlich zu zeigen, dass Streams sowie Listen sich gleichermaßen ohne zusätzliches Handling mit filter verarbeiten lassen.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten: