Ich habe eine Datenstruktur, die eine Typ-Signatur darstellt, diese Datenstruktur ist ein Baum im ersten Bild als das rote beispielhaft dargestellt. Ich würde gerne das Schwarze bekommen und bisher habe ich nur das Orange (zweites Bild), welches der Typbaum ist, aber links zugeordnet ist.Umschreiben von Bäumen
Hier ist der Orangenbaum ich bisher bekommen habe (folgen Sie den orangefarbenen Pfeilen)
ich ziemlich Druck auf den Baum dieses Problem gelöst hatte und es dann mit einem Parsing Parser-Kombinator, aber diese Ineffizienz ist nicht erwünscht. Ich denke, dass ich einen anderen Algorithmus haben kann, um vom Orangenbaum in den Schwarzen zu konvertieren, aber es wäre besser, wenn ich statt zwei Algorithmen nur einen schreiben könnte.
Ich werde dies als Haskell markieren, wie ich meine Lösung darauf schreibe. Ich könnte Code zur Verfügung stellen, um eine Datenstruktur wie der rote Baum zu erhalten, aber ich denke, dass es den Versuch auf der Lösung nur verkomplizieren würde.
Ich möchte wissen, ob es einen Namen für diesen Algorithmus und/oder was der Name gibt der Bedienerposition im roten Baum ist. Ist es ein Präfix?
Danke.
Was Sie haben, ist '(a -> b) -> c'. Was du hast, ist '(a -> b) -> c'. Was Sie wollen, ist 'a -> (b -> c)'. Ich glaube, Sie haben einen Fehler gemacht, als Sie entschieden haben, welches Ergebnis Sie wollen. –
@DanielFischer In der Tat, ich habe mich jetzt entschieden, das Ergebnis, das ich wollte, mit Hilfe von Stacks dabei zu haben, danke fürs Durchlesen meiner Sauerei –