DrRacket中的随机函数

7
我目前在Mac OS X上使用DrRacket,并选择语言“R5RS”,但是当我输入时,我遇到了以下问题:
(random 100)

我收到了以下错误消息:
reference to undefined identifier: random

这里出现了什么问题?是由于缺少软件包引起的吗?

我也尝试了random-integer和random-float,但得到了相同的响应。 - JasonLi
我已经找到了解决方案,程序包可以在PLaneT上找到。 - JasonLi
2个回答

10

正如dyoo指出的那样,R5RS中没有定义函数random。 如果你想在DrRacket中使用R5RS语言中的“外来”函数, 可以使用#%require导入它们。

在这种情况下,在Racket文档中搜索random。请注意,random是模块racket/base的一部分。现在编写:

(#%require (only racket/base random))
(random 10)

使用 only 确保你只导入函数 random 和在 racket/base 中存在的其他非 R5RS 构造。


7
“random”是R5RS提供的函数吗?我在规范的索引中查找,但没有找到。R5RS是一种最小化的语言模式,当Racket处于R5RS模式时,它会限制自己。
Racket确实有一个本地的random函数。如果您使用“#lang racket”,它会自动可用。您为什么要使用R5RS语言模式呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接