Hi Will,
* Will M. Farr <[email protected]> [091210 19:04]:
> The short summary: modules work on syntax, controlling the mapping between 
> symbols and bindings at top-level.  Units work at runtime, ensuring that code 
> is initialized and top-level statements are executed in the correct order.  
> Here's the long explanation:
> 
> * modules: a syntactic construct that associates names (symbols) with 
> bindings.  In Chicken, all bindings are top-level; a module lets you access 
> those top-level bindings with different names (or even 
> hide---effectively---some bindings because there is no name existing inside 
> the module that refers to them).  Purely syntax.  Modules are very important 
> for macros, because free symbols in the output of a hygenic macro should 
> refer to bindings according to the mapping in place *when the macro was 
> defined*, not the binding in place when the macro is used.  
> 
> * units: a way to designate some code as intended to be included in a larger 
> library or program.  The issue that units try to solve is that, in general, 
> top-level forms in Scheme have side-effects.  Consider:
> 

Thanks for your insights they help a bit. So a unit just ensures
that it gets executed first before of all the parts that use it? A
module will do that too...

Kind regards,

Christian


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to