【发布时间】:2012-05-25 01:34:56
【问题描述】:
我有一堆“遗留”Guile Scheme 代码,我想在 Racket Scheme IDE 中运行它们。似乎有足够的差异使这成为一项重要的练习。 (我的 Scheme 知识水平是完成 The Little Schemer 的水平。
我的问题是:
- Guile 方案和标准方案(在 Racket IDE 中)有什么区别?
- 鉴于这些差异,一般而言,我需要采取哪些步骤才能将某些 Guile Scheme 代码转换为标准 Scheme?
附加:(对 Racket Scheme 和 R5RS/R6RS 之间的分歧感到满意)——我想要在 Racket IDE 中运行“某些东西”——而不是在 Racket 语言中运行。
【问题讨论】:
-
如果您一直严格遵守 R5RS 和 R6RS 标准,那么 Racket 内置的兼容性语言可能会有所帮助。见:docs.racket-lang.org/guide/standards.html
-
您能否指定您在 DrRacket (R5RS/racket/etc) 中声明的语言?你能举例说明代码在哪里被破坏了吗?
-
@oobivat 我故意在网上大肆扫荡——我的问题背后的问题是“什么是诡计计划中的非标准内容”。如果它使问题更容易回答 - 那么我会将其表述为“在设置为 R5RS 的 Racket 中运行时,我 1994 年的诡计方案代码可能会出现什么问题 - 我该如何解决?”
-
好吧,我对球拍的 R5RS 实现做的不多,但是从稍微玩弄一下,它似乎缺少 SRFI 中实现的大多数东西。例如,没有
random程序。根据this 页面,您似乎可以加载您想要的任何功能。不幸的是,我找不到类似 to 语言之间的差异。 -
@oobivat 如果你需要 srfi-1 函数,你可以使用 #%require 来导入它。请参阅下面答案中的示例(在 cmets 中删除了换行符)。
标签: scheme racket guile r6rs r5rs