[r6rs-discuss] [ANN] scheme-reports.org
Thomas Lord
lord at emf.net
Mon Aug 24 12:41:12 EDT 2009
On Mon, 2009-08-24 at 12:16 -0400, John Cowan wrote:
> Thomas Lord scripsit:
>
> > I don't consider something like REQUIRE to be a module
> > system but I do (e.g. slib) think it perfectly reasonable
> > for libraries and appropriate to a language of small size.
> >
> > What is specifically not desirable in a small language
> > is the hair of multiple top-level namespaces with exports
> > and imports among them.
>
> God (or the Devil) is in the details, as always. I don't think the very
> simple Chicken 4 module system is too expensive: see
> http://chicken.wiki.br/man/4/Modules%20and%20macros#modules
>
> In short, it provides named modules that can export selected identifiers
> or all identifiers. Within a module or at the top level, you can import
> a module or selected identifiers, possibly excluding or renaming some,
> and possibly prefixing all those imported. Very little hair, if not
> completely glabrous.
If I understand it correctly, it is just like REQUIRE
except that it can "hide" some tlds in a library. It
doesn't appear to support things like renaming/aliasing.
Is that right?
Why not just stick to the much simpler REQUIRE and use
naming conventions to distinguish exported from internal
definitions in a library? Or just write libraries in a
style (a traditional style, no less) with only exported
bindings defined at the top level?
There's nothing "of the essence" about the chicken module
system. I presume it works very nicely in the context of
Chicken but it seems kind of redundant and ad hoc and it adds
implementation complexity - all of which I think disrecommends
it for small Scheme.
-t
More information about the r6rs-discuss
mailing list