Ich arbeite an rekursiven Tree Walking. Ich möchte etwas wie das Folgende (Haskell Pseudocode):Haskell: rekursive Mapping-Schwierigkeit
walkTree step root = do
dsc <- getDescendants root
for d in dsc
nextStep = increase step d
walkTree nextStep d
Keine Iteration für mich natürlich. Ich kann die Mapping-Lösung jedoch nicht herausfinden. Wie kann ich die step
Sache verwalten?
UPD:
Lassen Sie uns versuchen, die Zuordnung:
walkTree step root = do
dsc <- getDescendants root
nextStep = increase step d
mapM (walkTree nextStep) dsc
zwei Probleme: nextStep
wird für die Abbildung eingefroren; kann auch nicht d
(was sekundär ist)
Bitte fügen Sie immer Typensignaturen und Referenzen oder Definitionen für alle Daten hinzu, mit denen Sie zu tun haben. – leftaroundabout
Das ist Pseudocode, oder? "root" ist ein Baumknoten, "dsc" ist eine Liste seiner unmittelbaren Nachkommen, "step" ist etwas anderes, das noch geändert und weitergegeben werden kann. –
Es ist in Ordnung, Pseudocode für Ihren Lösungsversuch zu posten, aber wir müssen immer noch genau wissen, über welche Datenstrukturen Sie sprechen und was die _purpose_ (d. H. Typ-Signatur) Ihres Algorithmus wäre. – leftaroundabout