我正在使用 Racket 博士,语言相当大,并且我正在尝试“在?”中创建一个简单的二叉搜索树。方法,如果一个值是否在二叉搜索树中,它将返回。它必须是通用的,接受任何类型的搜索树(无论它是否包含字符串、整数等),但我遇到了这个让我发疯的错误消息。任何帮助表示赞赏,这里是代码:
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")
作为输入。