模块中的方案未绑定标识符错误:符号<! - ? - >

时间:2014-04-28 19:19:04

标签: scheme

我的代码中的以下行给了我一个未绑定的标识符错误。

((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)))))

2 个答案:

答案 0 :(得分:3)

没有symbol<?谓词,但 string<? - 所以如果我们将符号转换为字符串,我们就能够进行比较:

(define (symbol<? s1 s2)
  (string<? (symbol->string s1)
            (symbol->string s2)))

答案 1 :(得分:2)

Scheme中不存在

symbol<?。我知道它是球拍语言中的标准程序,但这不是Scheme而是类似的方言。

我认为您可以这样定义:

(define (symbol<? a b)
  (string<? (symbol->string a) 
            (symbol->string b)))