Scheme 获取未绑定的标识符';要求';计划中
我正在为我的项目使用Drracket。我正在为我的项目使用SICP(#lang SICP)语言。对于我的一个实现,我需要使用名为Scheme 获取未绑定的标识符';要求';计划中,scheme,racket,sicp,Scheme,Racket,Sicp,我正在为我的项目使用Drracket。我正在为我的项目使用SICP(#lang SICP)语言。对于我的一个实现,我需要使用名为(require(planet dyoo/simply scheme))的scheme包。方案未识别require关键字。但如果我将语言改为#lang racket,则“require”将被识别为关键字。我的项目使用set car和设置cdr以sicp语言提供,不以racket提供。附近有工作吗 下面是我代码的一些摘录: #lang sicp (require (pla
(require(planet dyoo/simply scheme))
的scheme包。方案未识别require关键字。但如果我将语言改为#lang racket,则“require”将被识别为关键字。我的项目使用set car代码>和设置cdr代码>以sicp语言提供,不以racket提供。附近有工作吗
下面是我代码的一些摘录:
#lang sicp
(require (planet dyoo/simply-scheme))
(define crosscuts 0)
及
首先,我想指出以下几点:
通常最好使用#lang racket
,因为#lang sicp
非常有限。您仍然可以访问set car代码>(尽管名称为设置mcar!
)。请参阅上的文档
如果您决定使用#lang racket
,您真的需要使用可变数据结构吗?避免变异是函数式编程的一个重要特征。如果你真的需要可变数据结构,你能用struct
和#:可变的来代替吗?这更像是闹剧。请参阅上的文档
这可能是不可能的,但通常我会避免使用Planet软件包。Planet是一个不再推荐的旧包装系统。然而,新的软件包系统中似乎没有简单的scheme
,因此您可能真的需要在这里使用Planet
如果您确实想使用#lang sicp
,请注意
R5RS没有require
,以避免中断使用require
名称的程序<因此,使用code>#%require
然而,#%require
是一个更原始的操作。根据您的require规范,从require
切换到#%require
可能很容易,也可能不容易
因此,首先,尝试用#%require
替换require
,看看它是否有效。如果是,太好了,你就完了
但如果出现错误,则表示您的require规范无法由#%require
处理。一个可能的解决方案是使用#%require
从Racket获取require
,这样您就可以使用require
做更复杂的事情
(#%require (only racket require))
(require ....)
首先,我想指出以下几点:
通常最好使用#lang racket
,因为#lang sicp
非常有限。您仍然可以访问set car代码>(尽管名称为设置mcar!
)。请参阅上的文档
如果您决定使用#lang racket
,您真的需要使用可变数据结构吗?避免变异是函数式编程的一个重要特征。如果你真的需要可变数据结构,你能用struct
和#:可变的来代替吗?这更像是闹剧。请参阅上的文档
这可能是不可能的,但通常我会避免使用Planet软件包。Planet是一个不再推荐的旧包装系统。然而,新的软件包系统中似乎没有简单的scheme
,因此您可能真的需要在这里使用Planet
如果您确实想使用#lang sicp
,请注意
R5RS没有require
,以避免中断使用require
名称的程序<因此,使用code>#%require
然而,#%require
是一个更原始的操作。根据您的require规范,从require
切换到#%require
可能很容易,也可能不容易
因此,首先,尝试用#%require
替换require
,看看它是否有效。如果是,太好了,你就完了
但如果出现错误,则表示您的require规范无法由#%require
处理。一个可能的解决方案是使用#%require
从Racket获取require
,这样您就可以使用require
做更复杂的事情
(#%require (only racket require))
(require ....)