有没有办法在Scheme中定义一个模块,并指定要导出所有绑定,而不显式列出每一个绑定?
有没有办法在指定不要导出的绑定列表时执行上述操作?
答案 0 :(得分:1)
R6RS之前的方案报告没有在规范中定义库,所以没有。以便携方式无法实现。但是,大多数R5RS的实现实际上都有自己的模块系统。例如。 Racket有强大的语法可以随心所欲地做到:
#lang racket
(provide (all-from-out <module>))
(provide (except-out (all-from-out <module>) lambda))
从R6RS我们有库,但是他们的出口规格需要按名称进行每次出口。
#!r6rs
(library <library name>
(export <export spec> ...)
(import <import spec> ...)
<library body>)
#!r7rs
(define-library <library name>
<library spec>)
R7RS有意改变了语法,但具有相同的能力。请参阅R7RS小报告(pdf,第28页)