空?:未绑定的标识符

Posted

技术标签:

【中文标题】空?:未绑定的标识符【英文标题】:empty?: unbound identifier 【发布时间】:2021-11-24 09:38:54 【问题描述】:

原始问题:编写一个递归 Racket 函数“more”,它接受两个列表 xs 和 ys 作为参数,如果 xs 的元素多于 ys,则返回 true,否则返回 false。例如 (more '(1 2 3) '(1 2)) 应该评估为真,而 (more '(1 2 3) '(0 1 2)) 应该评估为假。

(define (more xs ys)
        (if (empty? ys)
                (if (empty? xs) #false #true)
        (if (empty? xs) #false (more (cdr xs) (cdr ys)))))
        

(writeln (more '(1 2 3) '(1 2)))
(writeln (more '(1 2 3) '(0 1 2 3)))
(writeln (more '(1 2 3) '(0 1 2)))

我收到错误“:13: empty?: unbound identifier in: empty?” “空”如何?一个未绑定的标识符。

【问题讨论】:

或者,您可以使用标准中的null?,而不是empty? 【参考方案1】:

看起来您正在使用#lang racket/base(第一行有#lang racket/base)。在#lang racket/base中,默认不提供empty?

您的作业可能要求您使用学生语言(单击 DrRacket 中左下角的下拉按钮更改为,例如,Beginning Student),默认情况下会向您提供empty?

或者,如果您真的想使用#lang racket/base,您可以添加(require racket/list) 以使您可以使用empty?

或者,将#lang racket/base 更改为#lang racket,这将自动与其他几个库一起(require racket/list)

【讨论】:

以上是关于空?:未绑定的标识符的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException:游标状态无效:标识符游标未定位在 UPDATE、DELETE、SET 或 GET 语句中的行上:;结果集为空

修复“错误 C2065:未声明的标识符”

NSUserDefaults是否与捆绑标识符绑定?

能够唯一标识某一控件的属性的是啥

无法绑定多部分标识符“alias.field”

SQL 错误 无法绑定多部分标识符