<br><br>On Sunday, December 18, 2011, Niitsuma Hirotaka &lt;<a href="mailto:hirotaka.niitsuma@gmail.com" target="_blank">hirotaka.niitsuma@gmail.com</a>&gt; wrote:<br>&gt; How about this?<br>&gt; <a href="http://d.hatena.ne.jp/niitsuma/20081113/1324207362" target="_blank">http://d.hatena.ne.jp/niitsuma/20081113/1324207362</a><br>


&gt; I add some comment<br>&gt;<br><br>Ok, thanks for posting that code.<div><br></div><div>Do you expect modules to be re-invoked on every require?  I am trying to understand your concern about &quot;valid behavior&quot;.</div>

<div><br></div><div><br></div><div>The model I have with regards to modules is this: modules can be &quot;required&quot; from many different modules, but they are &quot;invoked&quot; just once.</div><div><br></div><div><br>

</div><div>So I if I have files A.rkt, B.rkt, and C.rkt, which all look like this:</div><div><br></div><div><br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>;; a.rkt</div></div><div>
#lang racket</div>
<div>(printf &quot;hi, this is A\n&quot;)</div><div><br></div><div><br></div><div>;; b.rkt</div><div>#lang racket</div><div>(require &quot;a.rkt&quot;)</div><div>(printf &quot;hi, this is B\n&quot;)</div><div><br></div><div>

<br></div><div>;; c.rkt</div><div>#lang racket</div><div>(require &quot;a.rkt&quot;)</div><div>(require &quot;b.rkt&quot;)</div><div>(printf &quot;hi, this is C\n&quot;)</div><div><br></div><div><br></div><div>Then I expect to see the following output when I run c.rkt:</div>

<div><br></div><div>    hi, this is A</div><div>    hi, this is B</div><div>    hi, this is C</div><div><br></div><div>Does my expectation surprise you, or does this match what you&#39;d expect as well?</div>