Scheme drracket v6.8无绑定
我的Dr.Racket已更新到v6.8。 AFAIK nil是一个语言构造关键字,不应抱怨它是一个未绑定的标识符Scheme drracket v6.8无绑定,scheme,racket,Scheme,Racket,我的Dr.Racket已更新到v6.8。 AFAIK nil是一个语言构造关键字,不应抱怨它是一个未绑定的标识符 #lang racket (define (enumerate-interval low high) (if (> low high) nil (cons low (enumerate-interval (+ 1 low) high)))) 运行定义块时的确切错误消息为: nil: unbound identifier in module in:
#lang racket
(define (enumerate-interval low high)
(if (> low high)
nil
(cons low (enumerate-interval (+ 1 low) high))))
运行定义块时的确切错误消息为:
nil: unbound identifier in module in: nil
这与v6.8有什么不同吗?自1991年R4RS发布以来,nil一直不是标准的一部分。请看第页和第38页,其中有语言更改 lang racket最初是一种R5RS,但今天它已经演变成一种完全不同的方言。因此,它的名字从Scheme改为Racket。您应该使用空列表literal
”()
或其中一个绑定,并在其位置上使用empty
不在racket/base
中,因此您需要要求racket/list
或使用#lang racket
以获得更大的绑定集来使用它
如果您确实想使用nil
作为表示空列表的全局绑定,您可以自己定义它:
(define nil '())
然而,一个普通人可能会错误地认为,自1991年R4RS发布以来,错误值
#f
没有成为标准的一部分。请看第页和第38页,其中有语言更改
lang racket最初是一种R5RS,但今天它已经演变成一种完全不同的方言。因此,它的名字从Scheme改为Racket。您应该使用空列表literal”()
或其中一个绑定,并在其位置上使用empty
不在racket/base
中,因此您需要要求racket/list
或使用#lang racket
以获得更大的绑定集来使用它
如果您确实想使用nil
作为表示空列表的全局绑定,您可以自己定义它:
(define nil '())
然而,一个普通人可能会错误地认为,使用假值
#f
谢谢你的详细回答,我用“()”成功地解决了这个问题。谢谢。谢谢你详细的回答,我用“()”成功了。谢谢