versuchen, unveränderlichen binären Suchbaum zu erstellen. Ich habe mit create constructor begonnen, um eine leere Liste zu erstellen, und mit der Methode, Element zu Tree hinzuzufügen, indem ich den folgenden Code benutze.binäre Suchbaum im Schläger erstellen?
#lang racket
(define (constructTree) '())
(define (addToTree Tree k v)
(cond [(null? Tree)
(cons Tree cons((cons k '()) v))]
[else
(cond [(>(car Tree) k)
(cons Tree cons((cons k '()) v))
]
[else
(cons Tree '() cons((cons k '()) v))
]
)]
)
)
(define bst (addToTree (addToTree (addToTree (addToTree (constructTree)3 "3") 1 "1") 2 "2") 5 "5"))
bst
, was ich durch unveränderliche meine ist wenn ich (define b0 (constructTree))
nennen
b0
sollte zurückkehren '()
(define b1 (addToTree b0 4 "4"))
b1
zurückkehren sollte '(4 "4"()())
(define b2 (addToTree b1 6 "6"))
b2
zurückkehren sollte '(4 "4"() (6 "6"()()))
... etc.
aber ich bekomme diesen Fehler: Anwendung: keine Prozedur; erwartet eine Prozedur, die auf Argumente angewendet werden kann gegeben: '(3) Argumente ...:
keine Ahnung, warum ich diesen Fehler bekomme oder was ich falsch mache? Vielen Dank im Voraus.
Das unmittelbare Problem ist, dass Sie in einigen Fällen die "Nachteile" außerhalb der Parens gesetzt haben. –
@ BrendanCannell Ich habe nicht genau verstanden, was du meinst, wie Sie es kennen, mein erster Zeitcode in Schläger und Funktion Sprache im Allgemeinen – kero
In allen drei Fällen '(Nachteile Baum Nachteile ((cons k '()) v)) sollte sei '(cons Baum (cons (cons k '()) v))'. –