2017-06-02 2 views
0

Schemeでモジュールを定義し、すべてのバインディングを明示的にエクスポートせずにエクスポートする方法はありますか?スキームのモジュールのエクスポートリスト

エクスポートすることができないバインディングのリストを指定する際に上記の方法がありますか?

+0

私はChez Schemeを使用していますので、Chezとの互換性が必要なソリューションであれば問題ありません。ありがとう! –

答えて

1

R6RS以前のスキームレポートには、仕様で定義されているライブラリはありません。ポータブルな方法では不可能です。しかし、R5RSの実装は実際には独自のモジュールシステムを持っています。例えば。ラケットは、あなたが望むようexatly行うための強力な構文は次のとおりです。

#lang racket 
(provide (all-from-out <module>)) 
(provide (except-out (all-from-out <module>) lambda)) 

R6RSから、我々はライブラリを持っている、しかし、彼らの輸出仕様は、名前によって、すべてのエクスポートを必要とします。

R6RS

#!r6rs 
(library <library name> 
    (export <export spec> ...) 
    (import <import spec> ...) 
    <library body>) 

R7RSは:

#!r7rs 
(define-library <library name> 
    <library spec>) 

R7RSを目的と構文を変更しますが、同じ能力を持っています。 R7RSの小レポート(pdf、page 28)