Racket 如何从scribble/text重新导出#%module begin等?
我想要一种像scribble/text这样的语言,但要提供一些附加功能。这就是我尝试过的:Racket 如何从scribble/text重新导出#%module begin等?,racket,scribble,Racket,Scribble,我想要一种像scribble/text这样的语言,但要提供一些附加功能。这就是我尝试过的: #朗格球拍/球座 (需要涂鸦/文字) (提供(全部来自涂鸦/文字) 你好) (定义(hello name) (格式为“Hello~a!”名称) 当我尝试运行用这种语言编写的模块时,我收到一条消息,说没有#%module begin绑定在该模块的语言中 我假设scribble/text对#%模块begin有一个绑定,否则当我将它用作#lang时它是如何工作的 也许scribble/text知道我是使用“r
#朗格球拍/球座
(需要涂鸦/文字)
(提供(全部来自涂鸦/文字)
你好)
(定义(hello name)
(格式为“Hello~a!”名称)
当我尝试运行用这种语言编写的模块时,我收到一条消息,说没有#%module begin绑定在该模块的语言中
我假设scribble/text对#%模块begin有一个绑定,否则当我将它用作#lang时它是如何工作的
也许scribble/text知道我是使用“require”而不是作为#lang导入它的,所以我不会自动获取#%宏?如果是这样的话,那么我将如何获得它们并将其重新出口
或者这里发生了什么事?的语言和(需要涂鸦/文本)
的库是不同的模块。库版本不提供#%module begin
或racket的其他绑定:
当通过require
而不是#lang
使用scribble/text
时,则。。。。它不包括球拍/球座的绑定
实际使用的模块语言是scribble/text/lang
。因此,您可以按如下方式修复模块语言:
#lang racket/base
(require scribble/text/lang)
(provide (all-from-out scribble/text/lang)
hello)
(define (hello name)
(format "Hello ~a!" name))
但是,模块
scribble/text/lang
没有文档记录,因此使用风险自负。用这种语言编写的模块到底是什么意思?也就是说,另一个模块中的#lang
行是什么样子的?原始模块位于名为notebook/main.rkt的文件中,第二个文件使用行“#lang notebook”写入其中。这有什么区别?很有效,谢谢。那么,这是一个“规则”吗?语言绑定是在一个名为“lang”的子模块中提供的,还是scribble/text正好是这样?scribble/text正好是这样,而不是规则