Gepostet: |
induction redefiniert mit foldr | ||||||||||
hey ich hab mal wieder nen problem. soll die funktion induction mit der funktion foldr redefinieren. induction is definiert durch:
danke schonmal |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, mach dich mal vertraut damit, wie foldr arbeitet. Hier (http://book.realworldhaskell.org/read/functional-programming.html#fp.foldr.filter) gibt es ein Beispiel, das zeigt, dass foldr deiner induction schon sehr nahe kommt. Die Rekursion läuft bei foldr lediglich über eine Liste, nicht wie bei dir über die Zahlen von n bis 0. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hey.. also ich komme auf diese Aufgabe auch gar nicht klar, wenn jemand ne Lösung hat, könnte er die ja mal posten ... auch wie ich mit foldr map filter und last definieren soll.. KA.. Geht mir voll auf Sack sowas.. wozu sollen wir das machen ... bähhh... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
also für map is relativ simpel
aber bei filter hab ich irgendwie nen fehler drin...
und last is wieder simpel (wenn man weiß wies geht:-) )
tja, bei inductin habe ich den scheiß nicht hinbekomm, kotz meine idee/ansatz: induction' base comb n = foldr (\ x y -> x `comb` y) n [n .. 0] |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, es sind nur kleine Fehler. Bei filter' hast du hinten den Anfangs-Akkumulator und die Liste vertauscht, da müsste [] xs stehen. Und bei induction' sollte das erste n hinten der Startwert base sein. Außerdem funktioniert [n .. 0] nicht, Haskell zählt ab der ersten Zahl immer +1 aufwärts, es sei denn du gibst explizit an, wie die folgende Zahl ausehen soll: [n, n-1 .. 0] Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
herzlichsten dank für die hilfe | |||||||||||
Zum Seitenanfang | |||||||||||