【问题标题】:scheme unbound identifier error in module in: symbol <?模块中的方案未绑定标识符错误:符号 <?
【发布时间】:2014-04-29 03:51:55
【问题描述】:

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

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

【问题讨论】:

  • symbol&lt;? 在我知道的任何方案中都不存在。您必须将其转换为字符串。
  • 如何将其转换为字符串。

标签: scheme


【解决方案1】:

没有symbol&lt;? 谓词,但一个string&lt;? - 因此,如果我们将符号转换为字符串,我们将能够执行比较:

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

【讨论】:

    【解决方案2】:

    symbol&lt;? 在 Scheme 中不存在。我知道这是球拍语言的标准程序,但那不是 Scheme,而是类似的方言。

    我想你可以这样定义:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多