我的代码中的以下行给了我一个未绑定的标识符错误。
((symbol<? x (car l)) #f)
任何人都可以向我解释为什么我会收到此错误以及如何解决它。
以下是整个代码:
; tests membership in ordered list of symbols
(define (member? x l)
(cond
((null? l) #f)
((symbol=? x (car l)) #t)
((symbol<? x (car l)) #f)
(else (member? x (cdr l)))))
答案 0 :(得分:3)
没有symbol<?
谓词,但 是string<?
- 所以如果我们将符号转换为字符串,我们就能够进行比较:
(define (symbol<? s1 s2)
(string<? (symbol->string s1)
(symbol->string s2)))
答案 1 :(得分:2)
symbol<?
。我知道它是球拍语言中的标准程序,但这不是Scheme而是类似的方言。
我认为您可以这样定义:
(define (symbol<? a b)
(string<? (symbol->string a)
(symbol->string b)))