如何解决可以在DrRacket中将语言单元设置为sicp来使用rackunit,如果可以,如何使用?
我开始使用DrRacket通过SICP进行工作。我安装了sicp软件包,并在单元测试文件的顶部声明了#lang sicp
,然后声明了(require rackunit "xxx.scm")
,但是出现了 unbound identifier 错误。是否有错误,或者不能以这种方式在sicp软件包中使用rackunit?
解决方法
您需要使用#%require
。
#%require
实际上是球拍最低级别的原始类型,它与require
略有不同:
#lang sicp
(#%require rackunit "xxx.scm")
您要测试的文件成为一个模块,因此您可以通过提供要公开的标识符从其他代码中使用它:
(#%provide procedure-name)
您也可以只需要一些所需的表格。例如。 error
中的time
和racket/base
:
(#%require (only racket/base error time))
有关查找其位置的提示是搜索在线手册,或从DrRacket中的“帮助”>“ Racket”文档中查找。例如。这是一个搜索error
的示例,您可以在其中进行多种选择,但以球拍开头的选项是您要寻找的选项。
NB:并非所有表格都跨语言兼容。例如。 R5RS与#lang racket
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。