微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以在DrRacket中将语言单元设置为sicp来使用rackunit,如果可以,如何使用?

如何解决可以在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中的timeracket/base

(#%require (only racket/base error time))

有关查找其位置的提示是搜索在线手册,或从DrRacket中的“帮助”>“ Racket”文档中查找。例如。这是一个搜索error的示例,您可以在其中进行多种选择,但以球拍开头的选项是您要寻找的选项。

NB:并非所有表格都跨语言兼容。例如。 R5RS与#lang racket

具有不同的配对实现

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。