On 05/12/2007, <b class="gmail_sendername">Matthew Dempsky</b> <<a href="mailto:email@example.com">firstname.lastname@example.org</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I'm not terribly interested in this thread, but on the topic of syntax<br>for calling functions in other modules, have any of you looked at<br>Scheme 48's module system? It already allows you to reload modules at
<br>run-time without putting any sort of REMOTE-CALL burden on the code.</blockquote><div><br>I checked this out. It is similar to the module/library system in R6RS, other rather R6RS is similar to it.<br><br>If I have understood it correctly. If you have a module foo which exports the functions a. b and c then you can reference the functions in foo from another module by doing:
<br><br>- (import foo)<br> Access all the exported functions in foo directly by their name: (a ... ), (b ... ) and (c ...)<br><br>- (only foo a b)<br> Only access functions a and b in foo directly by name<br><br>- (only foo (a x) (b y))
<br> Only access functions a and b in foo, but now call them a and y<br><br>- (except foo b)<br> Access all exported except b<br><br>- (prefix foo foo/)<br> Access all the exported functions in foo but with their names prefixed by foo/:
<br> (foo/a ... ), (foo/b ... ) and (foo/ ...)<br><br>You know the exports of foo at compile time and no name clashes are allowed. The module name can be more complex include hierarchy info and versions etc.<br><br>This seems to be more a system for defining libraries then an inclusive module system as in Erlang, the top program is not in a module.
<br><br>I think this is what they mean, correct me if I misunderstood it.<br><br>Robert<br><br></div></div>