我正在使用 Racket 开发一个简单的游戏(家庭作业)。要求指示我创建一个名为 random 的计算机播放器,它使用默认的随机数生成器。 这段代码说明了我的问题:
(define (random)
(random (10))) ; should be random number call
我习惯了命名空间的 C 约定:
std::string
Racket 是否提供类似的东西? 谢谢
最佳答案
您可以使用 prefix-in
为标准库的导出加上一些命名空间前缀。例如:
#lang racket
(require (prefix-in std:: racket))
(define (* x)
(std::* x x))
表明我们可以隐藏来自 #lang racket
的绑定(bind),但仍然可以通过前缀标识符获取它们。
传统上,人们使用的前缀比较简单,例如:
#lang racket
(require (prefix-in r: racket))
(define (* x)
(r:* x x))
关于random - 使用命名空间来处理阴影标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14994153/