DrRacket中的随机函数

时间:2012-02-29 13:31:19

标签: scheme racket

我目前在Mac OS X上使用DrRacket并选择语言“R5RS”,但是当我输入

(random 100)

我收到错误消息:

reference to undefined identifier: random

这里有什么问题?它是由丢失的包裹引起的吗?

2 个答案:

答案 0 :(得分:10)

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

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

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

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

答案 1 :(得分:7)

“随机”是R5RS提供的功能吗?我在spec的索引中查找它,但我没有在那里看到它。 R5RS是一种最小语言模式,当Racket处于R5RS模式时,它确实限制了自己。

球拍确实具有原生random功能。如果你使用'#lang racket',它会自动使用。你有没有理由使用R5RS语言模式?