foldr foldl wat?

Mira`
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 27. Okt 2006 20:41

Beitrag von Mira` »

Hättest du mal nen Ansatz für die 7.2 oder 7.4? Ich hab die letzten 2 Stunden versucht die 7.1 zu machen und bin jetzt so frustriert, dass ich net mal mehr die vermeindlich einfachen Aufgaben hinbekomme. Ich finds allein schon schwer genug die Aufgabenstellung zu verstehen.

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

joa, un wenner wieder verzweifeln wollt versucht die 7.1. zu lösen, natürlich mit foldr/l und mit hinsicht auf das Beispiel mit length.

@ Mira, vielleicht als kleiner Ansatz für die 7.2:

mit length kannst du ja die Länge einer Liste bestimmen, wenn du davon -1 abziehst, hast du den exponenten deiner ersten Listelements z.B.: (1 0 0 1) -> Länge = 4, das minus 1 und du weißt schonmal das das erste Element deiner Liste 2^3 ist.

Mira`
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 27. Okt 2006 20:41

Beitrag von Mira` »

Danke für den Ansatz, ich glaub damit komm ich schonmal etwas weiter. Ich hatte natürlich mal wieder viel zu kompliziert gedacht...ich dachte ich muss die jedes Element der Liste durchlaufen und bei jedem Durchlauf einer Variable +1 addieren. Quasi wie man es aus anderen Sprachen kennt: x = x + 1. Aber warum einfach, wenn es auch kompliziert geht :wink:

Benutzeravatar
mr.Flagman
Erstie
Erstie
Beiträge: 16
Registriert: 19. Nov 2006 15:59
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von mr.Flagman »

Sorry, aber ich glaube Scheme ist nur eine Parodie einer Programmiersprache. Man ist total eingeschränkt durch den syntax und es gibt nicht Mal einen vernünftigen Help, was da als Help bezeichnet ist hat nicht Mal einen Beispiel. Ich bin enttäuscht.

Kann mir eventuell jemand die Funktionsweise der Funktion map erklären, aber richtig mit vertrag, zwecke und wenigstens einem Beispiel.

Danke
Woher soll ich wissen was ich denke, bevor ich lese was ich schreibe?

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

joa das stimmt, aber ich denk das macht schon sinn mit scheme anzufangen, das ist zwar sehr viel umständlicher (imho) als z.B. Java, aber genau dadurch lernen wir strukturieteres vorgehen und denken.

Irgendjemand hatte mal gepostet er hätte 2 jahre programmier erfahrung und kommt mit scheme jetz nich klar, mir gehts genauso, aber ich merk auch das ich jetz an probleme sinnvoller rangehe als vorher.

und das ständige motzen warum wir scheme lernen etc bringt nichts, daher einfach damit klar kommen (Y)

edit:
btw kann mir jemand nen tipp geben wie ich das problem umgehen kann, dass length keine operation ist, die 2 elemente unterstützt?
bzw wie ich foldl/r mit length kombinieren kann? :/

Benutzeravatar
gobbledygook
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 11. Nov 2006 14:15

Beitrag von gobbledygook »

@mr.Flagman
also den vertrag kannste dir schenken... wenn de den willst guck in htdp nach

map wendet einfach eine funktion auf jedes element einer list an
(map afunction aloX)
und speichert das ergebens von deiner funktion in einer neuen liste in reihenfolge

(map (lambda (X) (sqr X)) '(1 2 3 4 5))
[edit]
(map sqr '(1 2 3 4 5)) sollte wohl das gleiche sein
[/edit]

müsste sowas geben
(list 1 4 9 16 25)


du sparst dir somit

Code: Alles auswählen

(define (mymap myop aloX)
  (cond [(empty? alox) empty)]
        [else (cons (myop (first aloX)) (mymap myop (rest aloX)))]))
[habs letzteres jetzt net getestet, könnte aber hinkommen]
Zuletzt geändert von gobbledygook am 19. Nov 2006 17:57, insgesamt 1-mal geändert.




Ich mag keine Vegetarier.
Die essen meinem Essen das Essen weg.

yourmaninamsterdam
Nerd
Nerd
Beiträge: 681
Registriert: 26. Okt 2006 14:04
Kontaktdaten:

Beitrag von yourmaninamsterdam »

Christoph B hat geschrieben:btw kann mir jemand nen tipp geben wie ich das problem umgehen kann, dass length keine operation ist, die 2 elemente unterstützt?
bzw wie ich foldl/r mit length kombinieren kann? :/
Fragt sich jetzt natürlich, was genau du damit willst, zwei Parameter an length zu übergeben. length nimmt eine List und gibt die Länge zurück.

Wie genau möchtest du das jetzt anwenden oder kombinieren?

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

geht um Aufgabe 7.1

da sollen wir ja foldr/l anweden, und auch noch flexibel sein für andre möglichkeiten der Wertigkeitsberechnungen als Grundlage zur Sortierung.

Von daher hab ich gedanklich die Anwednung von length in diesen Aparat der Werigkeitsbestimmung reingepackt, welche wohl mit foldr/l gelöst werden soll.

Kannst mich natürlich auch berühigen und sagen ich bin auffem völlig falschem Dampfer :D

Prinzipiell ist eben die Frage, wie bastle ich mir mit length und foldr/l eine Grundlage, auf der man 2 Werte vergleichen und dann halt sortieren kann.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

Drudge hat geschrieben:ähm... na dafür hast du doch die prozedur von 6.1?! die hattest du doch schon?
hast recht, deshalb kam mir das auch so bekannt vor :D

aber ich muss sagen du beschreibst das eigentlich sehr treffend, genauso gehts mir auch. ich hab es auch schon in der schule gehasst den stoff (vor allem bücher) in möglichst kurzer zeit durchzuprügeln und am ende nix zu verstehen. und sich dann fragen wieso schland bei pisa so abgeht.
Christoph B hat geschrieben:Irgendjemand hatte mal gepostet er hätte 2 jahre programmier erfahrung und kommt mit scheme jetz nich klar, mir gehts genauso, aber ich merk auch das ich jetz an probleme sinnvoller rangehe als vorher.
könnte ich gewesen sein, nur warens 4 jahre :P

ich kann dir da aber nur teilweise zustimmen. sicherlich zwingt scheme einen dazu vorher nachzudenken aber dieser ganze rekursionskram ist bei den bekannteren programmiersprachen nur bedingt nützlich weil halt meistens iteration schneller ist. und was ich irgendwie ziemlich tötlich finde ist dass man da viel zu leichtfertig mit unterschiedlichen datentypen umgehen kann und optisch ein chaos in diesen editor reindrückt dass es nicht mehr feierlich ist.
das fängt an dass das ding erstens mal immer einrückt wie es bock hat und zweitens springt man beim ablauf hin und her wie zu den guten alten goto-zeiten.
also spätestens jetz weiß ich wieso das abgeschafft wurde ^^

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

So, da ich die 7.1 jetz doch noch lösen konnte un im völligem Siegesrauch bin antworte ich dir:

Scheme ist absolut unübersichtlich un ich krieg auch immer plaque wenns schon allein um die tausend klammern geht.
ABER dadruch kriegste wenns zu den RICHTIGEN (das mein ich auch so ^^) Programmier sprachen geht nen besseres Gefühl für die Struktur, weil dir das im Vergleich zur Scheme programmierei dann wahrscheinlich wie Kindergarten vorkommt :D

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

ich kann das nicht beurteilen weil ich von Delphi/C++ zu scheme gekommen bin, andersrum würd ichs nicht machen wollen :o)

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

java 4 ever :P

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion »

Ich habe mit Turo Pascal programmiert und danach viel mit PHP gemacht.

Ich bin trotzdem flexibel genug, mich in Scheme hineinzudenken, und jetzt mit Scheme auch zurechtzukommen. Daran, dass ihr vorher was anderes programmiert habt, kann es daher m.E. gar nicht liegen. Vielleicht liegt es ja vielmehr daran, Scheme zunächst mal unangenehm, fremd und ganz neu ist und dass ihr nicht bereit seid, euch auf ein "neues" Sprachkonzept einzulassen? Da würde ich an eurer Stelle mal drüber anchdenken.

Scheme rockt die sch... fett! ;)
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

ja so ganz unrecht hast du da nicht.

aber auch wenn ich scheme scheiße finde heißt das ja nicht dass ich nicht mein bestes gebe um möglichst viele übungen zu schaffen.

nur ich tue mich halt etwas schwer die betonsockel auf die sich meine bisherige programmierung stützt wegen soner sprache (quasi ein dialekt :D ) umzutreten :P

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion »

man muss das eine doch nicht zerstören, um das andere zu lernen. Du sprichst doch auch deutsch, englisch und dann noch französisch/latein. Da sind doch Vokabular und Grammatik auch ganz verschieden.
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

Antworten

Zurück zu „Archiv“