Wie der Titel.Wenn Sie den Wert einer Variablen in Haskell nicht ändern können, wie erstellen Sie Datenstrukturen?
Ich habe den folgenden Code, der einen binären Suchbaum erstellt, aber wenn ich möchte, dass er dynamisch mit Benutzereingabe erstellt und geändert wird, wie würde ich das tun, wenn ich den Wert einer Variablen in haskell nicht ändern kann?!?
find :: (Ord a) => Node a -> a -> Bool
find (Node val left right) s
| s == val = True
| s < val = find left s
| s > val = find right s
find Empty s = False
data Node a = Node a (Node a) (Node a)
| Empty
myTree = Node "m" (Node "a" Empty Empty)
(Node "z" Empty Empty)
Vielen Dank im Voraus!
Danke für die Antwort. Ich will nicht dicht sein, aber mit dem gegebenen Beispiel scheint ich immer noch das gleiche Problem zu haben. Sie erhalten 'Baumelement einfügen', Baum ist ein Knoten mit linken und rechten Knoten, die 'leer' sein können oder nicht. Wenn addTreeItems das erste Mal aufgerufen wird, wird es erneut mit einer Baumstruktur aufgerufen, die von 'Baumelement einfügen' zurückgegeben wird, die nur einen einzigen Knoten mit vermutlich zwei leeren Zweigen hätte. Bei der zweiten Rekursion wird dieser Stammknoten zusammen mit einem neuen Element in die Einfügung übernommen. Wie wird dieses Element jedoch zum Knoten hinzugefügt, wenn die Zweige des Knotens nicht geändert werden können (in diesem Fall leer)? Danke! –
Vergesse ich war dicht, vergaß, dass ich einen ganz neuen Baum erstellen muss, ich bin nah an meiner eigenen Lösung denke ich jetzt. –