Seite 4 von 7

Verfasst: 8. Dez 2007 22:20
von Ivan
eval-var: Unbound variable: 'quote

quote? was soll das bedeuten,
wenn ich keine variable names qoute hab?
ohne stepper kann ich mit der meldung nix anfangen

Verfasst: 8. Dez 2007 23:11
von Krümelmonster
Hast du zutällig eine Liste mit dem
quote-Konstruktor erstellt?

Code: Alles auswählen

'('a)
...ist das selbe wie...

Code: Alles auswählen

(list (list 'quote 'a))

Verfasst: 8. Dez 2007 23:35
von Ivan
:D aus dem Beispiel 2 zeilen drüber kopiert ohne nachzudenken,
sehr gut von mir.

Verfasst: 9. Dez 2007 13:15
von #14
hey alex... ja soweit ich das sehen kann, ist das template richtig... und wenn ich (empty) alleine ausfuehre, dann wird ja auch ein empty zurueckgegeben...

Verfasst: 9. Dez 2007 13:49
von Krümelmonster
Hat eigentlich schon jemand, der in
der Übungsgruppe von Kai ist
(Freitags 13:30-15:10) eine
Bestätigung auf den Eingang
der Übung bekommen?

Ich nämlich nicht und morgen
ist ja die Deadline.

Verfasst: 9. Dez 2007 16:56
von caesar
habe auch ein problem mit filter, ich rufe die prozedur über

Code: Alles auswählen

(my-cons 5 (my-filter (lambda (x) (= (x) 3)) alon)) 
auf, ausgegeben wird mir jededoch
(make-proc
(list 'n)
(make-if-clause.......u.s.w
woran liegt es, dass er die übergebene funktion nicht bearbeitet?

Verfasst: 9. Dez 2007 17:15
von heiko_s
caesar hat geschrieben:habe auch ein problem mit filter, ich rufe die prozedur über

Code: Alles auswählen

(my-cons 5 (my-filter (lambda (x) (= (x) 3)) alon)) 
auf, ausgegeben wird mir jededoch
(make-proc
(list 'n)
(make-if-clause.......u.s.w
woran liegt es, dass er die übergebene funktion nicht bearbeitet?
Probiers mal mit my->cons statt mit my-cons ;)

Weiß jemand, wo der Fehler liegen könnte, wenn ich bei (my->cons 5 (my-filter (lambda (x) (< x 0)) alterate-nat)) die Fehlermeldung

Code: Alles auswählen

map: all lists must have same size; arguments were: (lambda (a1 a2) ...) (list 'relop 'lox) (list (make-application (make-variable 'my-rest) (list (make-application (make-v..." erha

erhalte?

Verfasst: 9. Dez 2007 17:42
von seb1402
Also ich habe den Fehler auch bekommen.
Bei mir war es folgendes Problem:
Mein Vertrag von filter ist: (X TH -> boolean) (listof X) TH -> (listof X)
Das ist ja schon bekannt aus der Vorlesung.
Wenn dein Vertrag genauso aussieht, dann hast du beim Aufruf deiner Filterfunktion TH vergessen.

Verfasst: 9. Dez 2007 18:00
von saba
seb1402 hat geschrieben:Also ich habe den Fehler auch bekommen.
Bei mir war es folgendes Problem:
Mein Vertrag von filter ist: (X TH -> boolean) (listof X) TH -> (listof X)
Das ist ja schon bekannt aus der Vorlesung.
Wenn dein Vertrag genauso aussieht, dann hast du beim Aufruf deiner Filterfunktion TH vergessen.
aber filter braucht 2 argumente oder?
bei dir gibts 3 argumente

weil eigebaute filter im scheme sieht so aus (aus scheme Help):
filter : ((X -> boolean) (listof X) -> (listof X))

Verfasst: 9. Dez 2007 18:08
von s!mon
Puh, endlich geschafft und eine schnelle Lösung gefunden :)

Zum Filtern von 5 positiven und negativen Elementen von nat und jeweils 10 von alterate-nat, also:

(list (list 1 2 3 4 5) empty (list 1 3 5 7 9 11 13 15 17 19) (list -2 -4 -6 -8 -10 -12 -14 -16 -18 -20))

Braucht mein Laptop jetzt noch 14 Sekunden :)

thx @ MelonTropic. Ohne deine Aussage, dass es auch schneller geht, hätte ich meine alte Lösung gelassen.

Verfasst: 9. Dez 2007 18:09
von heiko_s
seb1402 hat geschrieben:Also ich habe den Fehler auch bekommen.
Bei mir war es folgendes Problem:
Mein Vertrag von filter ist: (X TH -> boolean) (listof X) TH -> (listof X)
Das ist ja schon bekannt aus der Vorlesung.
Wenn dein Vertrag genauso aussieht, dann hast du beim Aufruf deiner Filterfunktion TH vergessen.
Ich hab soeben nach mehrstündigem Suchen bemerkt, dass ich vergessen hab der Prozedur beim rekursiven aufrufen den rel-op zu übergeben :roll:

Verfasst: 9. Dez 2007 18:26
von saba
hallo

ich habe auch eine frage zu 7.3
und zwar ob empty für metainterpreter erkannt ist und
wenn ich in filter leere liste ausgeben muss ,was soll ich schreiben
und zweites muss man selber eine relation-operation(X -> boolean) für diese aufgabe ausdenken, wie even? , sqrt? ,... und danach filter auf der verwenden?

Verfasst: 9. Dez 2007 18:39
von s!mon
zu 1: schreib einfach (empty) statt empty

zu 2: ja.. wobei das ja einfach eine abfrage ist, ob die zahl größer oder kleiner 0 ist (positiv/negativ)

Verfasst: 9. Dez 2007 19:07
von saba
aha und andere frage ist ,
wie kann ich true und false zurück geben,weil es sieht so aus ,dass metainterpreter
true und false nicht erkennt ,weil für die Funktion X->boolean soll ich irgendwelche bedingung prüfen und true oder false zurückgeben
oder??

Verfasst: 9. Dez 2007 19:33
von heiko_s
saba hat geschrieben:aha und andere frage ist ,
wie kann ich true und false zurück geben,weil es sieht so aus ,dass metainterpreter
true und false nicht erkennt ,weil für die Funktion X->boolean soll ich irgendwelche bedingung prüfen und true oder false zurückgeben
oder??
Das hab ich mich zuerst auch gefragt, aber statt zB (if (= x 0) true false) kann man ja auch (= x 0) verwenden, gibt ja auch nen boolean zurück. ;)