meinst du filter funktion muss man ohne if implementierens!mon hat geschrieben:Alles was du in alternate ausrechnest macht deine Funkion sehr langsam. Du musst überlegen, wie du alles ifs oder abs da rausbekommst
Übung 6, Aufgabe 7 - Metainterpreter
Ne, ich glaube, er meint shcon die alternate-nat-Erzeugung. filter ohne if wirste nicht schaffensaba hat geschrieben:meinst du filter funktion muss man ohne if implementierens!mon hat geschrieben:Alles was du in alternate ausrechnest macht deine Funkion sehr langsam. Du musst überlegen, wie du alles ifs oder abs da rausbekommst

-
- Erstie
- Beiträge: 15
- Registriert: 5. Nov 2006 15:45
wenn ich diese aufruf (my->cons 10 alterate-nat) habe
dann bekomme ich in weniger als eine minute die antwort (dh glaube ich dass die alterate-nat richtig sein sollte)
aber wenn ich filter dabei verwende,so (my->cons 10 (filter pos? alterate-nat))
soll ich evig warten
liegt das problem vielleicht an filter? (mein filter funktion sieht fast wie filter funktion in T5)
dann bekomme ich in weniger als eine minute die antwort (dh glaube ich dass die alterate-nat richtig sein sollte)
aber wenn ich filter dabei verwende,so (my->cons 10 (filter pos? alterate-nat))
soll ich evig warten

liegt das problem vielleicht an filter? (mein filter funktion sieht fast wie filter funktion in T5)
-
- Erstie
- Beiträge: 15
- Registriert: 5. Nov 2006 15:45
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Was hast du denn für einen Rechner?
(my->cons 10 alterate-nat) braucht bei mir ein paar Sekunden.
Wenn du den Filter durchlaufen lässt ist ja klar das der ewig länger braucht, denn er muss für jedes Element der Größe n, n rekursive Aufrufe machen. Etwa n! Aufrufe oder so...keine Ahnung. Das wäre aber dann O(n^2) und damit rechenintensiv.
(my->cons 10 alterate-nat) braucht bei mir ein paar Sekunden.
Wenn du den Filter durchlaufen lässt ist ja klar das der ewig länger braucht, denn er muss für jedes Element der Größe n, n rekursive Aufrufe machen. Etwa n! Aufrufe oder so...keine Ahnung. Das wäre aber dann O(n^2) und damit rechenintensiv.
-
- Erstie
- Beiträge: 15
- Registriert: 5. Nov 2006 15:45
Ich persönlich hab einen Intel Core 2 Duo T7600 Prozessor (neuer Laptop)...Insofern sollte es schon schnell gehen...Stumpf.Alex hat geschrieben:Was hast du denn für einen Rechner?
Hab jetzt mal meine alternate-nat-Prozedur mit einem if-clause gelöst und nun funktioniert (my->cons 10 (filter pos? alterate-nat)) innerhalb von 10Sek.
Manchmal scheint wohl die mathematische Lösung nicht immer die beste Lösung zu sein

ja wenn ich nat statt alterate-nat benutze ,funktionier schnell..Pathfinder hat geschrieben:@saba: Wenn Du (my->cons 10 (filter pos? nat)) (also nur nat statt alternate-nat) machst, dann funktioniert es sehr gut, richtig?
Wenn ja, dann liegts irgendwie an alternate-nat...
Denn dasselbe Problem habe ich auch...
ich habe meine alterate-nat ganz unabhängig von nat implementieren,
soll man vielleicht alternate nat mit hilfe von nat implementieren ??
und andere Frage , braucht man überhaupt irgendwelche my-map funktion ??
Zuletzt geändert von saba am 9. Dez 2007 23:50, insgesamt 2-mal geändert.
-
- Erstie
- Beiträge: 15
- Registriert: 5. Nov 2006 15:45
-
- Erstie
- Beiträge: 15
- Registriert: 5. Nov 2006 15:45
So oder so ist es rekursiv, da es ein Stream ist...
Ich meinte nur folgendes:
Ich hatte dasselbe Problem, wie Du...Ich hatte alternate-nat rein mathematisch gelöst, sodass ich lediglich eine Rekursion gebraucht hatte und sonst nix.
Danach habe ich es mit einem if (wenn n < 0, dann blabla, andernfalls blabla) versucht, und habe die mathematische Formel fallen lassen, da diese wohl zu rechenintensiv war.
Daher sage ich ja, versuchs auch mal so...Evtl. ist es bei Dir genauso...
Ich meinte nur folgendes:
Ich hatte dasselbe Problem, wie Du...Ich hatte alternate-nat rein mathematisch gelöst, sodass ich lediglich eine Rekursion gebraucht hatte und sonst nix.
Danach habe ich es mit einem if (wenn n < 0, dann blabla, andernfalls blabla) versucht, und habe die mathematische Formel fallen lassen, da diese wohl zu rechenintensiv war.
Daher sage ich ja, versuchs auch mal so...Evtl. ist es bei Dir genauso...
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund