Я использую Dr. Racket, язык Pretty Big, и я пытаюсь сделать простое двоичное дерево поиска "in?" метод, который будет возвращать, если значение находится в дереве двоичного поиска или нет. Оно должно быть общим, принимая любое дерево поиска (содержит ли оно строки, целые и т. Д.), Но я сталкиваюсь с этим сообщением об ошибке, которое сводит меня с ума. Любая помощь приветствуется, вот код:
EDITED :: Теперь это работает, но не с чем-либо, кроме чисел (или, по крайней мере, со строками). Новая проблема:
(define (bstsearch tree value)
(cond
((null? tree) #f)
((< value (car tree))
(bstsearch (cadr tree) value))
((> value (car tree))
(bstsearch (caddr tree) value))
((= value (car tree))
#t)
))
Ошибка, которую я получаю, говорит:
<: expects type <real number> as 1st argument, given: "horse"; other arguments were: "horse"
При использовании:
(bstsearch '("horse" ("cow" () ("dog" () ())) ("zebra" ("yak" ()()) ())) "horse")
в качестве ввода.