P1 - Blatt 12 - Aufgabe 5
2003-01-26 02:59
Ranseyer
Hi!
Nachdem ich Aufgabe 1-4 ziemlich easy gelöst habe, komme ich bei 5 gar nicht mehr weiter!
Problem ist schon das Prädikat "symmetrisch":
(define (symmetrisch? liste)
(for-all (rcurry member? (map umdrehen liste)) liste))
( (map umdrehen liste) dreht alle tupel der Liste um, damit man sie einfach 1:1 vergleichen kann)
Diese Lösung verwendet ja nicht there-is. Ich kann zwar there-is so verwenden, dass es so wie member? (Skript S. 116) funktioniert:
(there-is (curry equal? '(Eva . Kain)) '((Eva . Kain) (Adam . Abel)))
Aber wie kann statt member? there-is in der o.g. Funktion verwenden? Problem ist ja folgendes: (Achtung, jetzt wird es kompliziert….) Ich will jedes Element der Liste mit dem Prädikat for-all überprüfen, ob es in der "umgedrehten" Liste enthalten ist. Wenn ja, ist die Symmetrie gegeben.
Oder bin ich völlig auf dem holzweg?
gruss
Karl
Edit: Bitte immer den Zyklus (hier P1) im Titel angeben.
Nachdem ich Aufgabe 1-4 ziemlich easy gelöst habe, komme ich bei 5 gar nicht mehr weiter!
Problem ist schon das Prädikat "symmetrisch":
(define (symmetrisch? liste)
(for-all (rcurry member? (map umdrehen liste)) liste))
( (map umdrehen liste) dreht alle tupel der Liste um, damit man sie einfach 1:1 vergleichen kann)
Diese Lösung verwendet ja nicht there-is. Ich kann zwar there-is so verwenden, dass es so wie member? (Skript S. 116) funktioniert:
(there-is (curry equal? '(Eva . Kain)) '((Eva . Kain) (Adam . Abel)))
Aber wie kann statt member? there-is in der o.g. Funktion verwenden? Problem ist ja folgendes: (Achtung, jetzt wird es kompliziert….) Ich will jedes Element der Liste mit dem Prädikat for-all überprüfen, ob es in der "umgedrehten" Liste enthalten ist. Wenn ja, ist die Symmetrie gegeben.
Oder bin ich völlig auf dem holzweg?
gruss
Karl
Edit: Bitte immer den Zyklus (hier P1) im Titel angeben.