LeeJan hat geschrieben:Sagen wir mal es handelt sich um einen Binärbaum, wobei die Knoten einen Int-Wert speichern und zwei Teilbäume.
Und bei der Funktioen mapTree übergebe ich einen Int-Wert und einen Binärbaum.
Nein, du übergibst eine Funktion f :: a->b und einen Binärbaum vom Typ a, und erhältst einen Binärbaum vom Typ b zurück.
Angewendet wäre dann z.B: a Int und b String; dann hättest du eine Funktion f::Int -> String und einen Binärbaum vom Typ Int, und erhältst einen Binärbaum vom Typ String zurück.
Du übergibst mapTree einen Baum und eine Funktion, und erhältst einen neuen Baum, der strukturell gleich ist (gleiche Knotenzahl und -anordnung), dessen Knoten jedoch neue Werte enthalten.
proxylittle hat geschrieben:Nun geht man sozusagen den baum entlang und übergibt die funktionsparameter einfach weiter. Eine weitere Frage ist: Sollen die Werte aus f die gleichen Werte sein wie im Binärbaum oder sequenziell?
Die Baumstruktur selbst darf nicht angetastet werden, also wieso sequenziell?
Ein Beispiel:
f 1 = "eins"
f 2 = "zwei"
f 3 = "drei"
Node 3 (Node 1 Empty Empty) (Node 2 Empty Empty)
-->
Node "drei" (Node "eins" Empty Empty) (Node "zwei" Empty Empty)
ODER
Node "eins" (Node "zwei" Empty Empty) (Node "drei" Empty Empty)
ich vermute grad mal spontan das erste ^^richtig?
Eine Funktion ist nicht "sequentiell", sondern bildet einen eingegebenen Wert (3) auf einen ausgegebenen Wert ("drei") ab. Somit ist das erste natürlich richtig. Wie willst du bspw. die Funktion suc (= plus 1) "sequenziell" gestalten?
@LeeJan: ich glaub das ist unabhängig von den werten wie der baum aussieht. Der kann egal wie komisch aufgebaut sein.. die werte müssen lediglich ersetzt werden durch 'text1' 'text2' oder sonstwas was dir einfällt.
Genau, die Werte werden ersetzt, die Struktur bleibt erhalten.
Nicht der Staat gewährt den Bürgern Freiheit, sondern die Bürger dem Staat Einschränkungen ihrer Rechte.
Kontrollierende und inhaltlich wertende Eingriffe in eine technologisch neutrale Infrastruktur sind eine Gefahr für den freiheitlichen Rechtsstaat.