Thanks Robby - I will dig into these papers to learn more about custodians.&nbsp; <br><br>Thanks,<br>yinso<br><br><div><span class="gmail_quote">On 4/16/07, <b class="gmail_sendername">Robby Findler</b> &lt;<a href="mailto:robby@cs.uchicago.edu">
robby@cs.uchicago.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Oh! Custodians are the mechanism we use to identify &quot;principal&quot;s for
<br>the purpose of reclaiming resources. Threads are one such resource.<br><br>I suggest that you read these two papers to get an idea of the<br>pragmatics of custodians:<br><br>&nbsp;&nbsp;<a href="http://www.ccs.neu.edu/scheme/pubs/icfp99-ffkf.pdf">
http://www.ccs.neu.edu/scheme/pubs/icfp99-ffkf.pdf</a><br>&nbsp;&nbsp;<a href="http://www.cs.utah.edu/plt/publications/pldi04-ff.pdf">http://www.cs.utah.edu/plt/publications/pldi04-ff.pdf</a><br><br>They are really quite different than the other things (let, fluid-let,
<br>parameterize) you are asking about.<br><br>Robby<br><br>On 4/16/07, Yin-So Chen &lt;<a href="mailto:yinso.chen@gmail.com">yinso.chen@gmail.com</a>&gt; wrote:<br>&gt; They are both mentioned under the thread chapter in mzscheme doc hence I
<br>&gt; thought they were related ;)&nbsp;&nbsp;Under what situation do I need to think about<br>&gt; custodians?<br>&gt;<br>&gt; Thanks,<br>&gt; yinso<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;On 4/16/07, Robby Findler &lt;<a href="mailto:robby@cs.uchicago.edu">
robby@cs.uchicago.edu</a>&gt; wrote:<br>&gt; &gt; No, parameterize doesn&#39;t use custodians. They&#39;re independent of each<br>&gt; other.<br>&gt; &gt;<br>&gt; &gt; Robby<br>&gt; &gt;<br>&gt; &gt; On 4/16/07, Yin-So Chen &lt;
<a href="mailto:yinso.chen@gmail.com">yinso.chen@gmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; Thanks Robby/Carl (and Eric for answering privately) -<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; here&#39;s a related question:&nbsp;&nbsp;Does parameterize automatically uses a
<br>&gt; custodian<br>&gt; &gt; &gt; (e.g. current-custodian) to manage resources or custodians have to be<br>&gt; used<br>&gt; &gt; &gt; explicitly?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; On 4/16/07, Robby Findler &lt; 
<a href="mailto:robby@cs.uchicago.edu">robby@cs.uchicago.edu</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; Another difference between parameters and fluid-let: in a fluid-let<br>&gt; &gt; &gt; &gt; the values are not thread local, but in a parameter they are.
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Robby<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; On 4/16/07, Carl Eastlund &lt;<a href="mailto:cce@ccs.neu.edu">cce@ccs.neu.edu</a> &gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; On 4/16/07, Yin-So Chen &lt; 
<a href="mailto:yinso.chen@gmail.com">yinso.chen@gmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; What is the difference between using let vs parameterize?<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Let operates on bindings.&nbsp;&nbsp;It creates a new name and binds it to a
<br>&gt; &gt; &gt; &gt; &gt; value.&nbsp;&nbsp;This affects code directly within the let-body that refers<br>&gt; to<br>&gt; &gt; &gt; &gt; &gt; the same name, providing it is not bound again (&quot;shadowed&quot;) inside<br>&gt; the
<br>&gt; &gt; &gt; &gt; &gt; let.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Parameterize operates on parameters, which are values.&nbsp;&nbsp;It takes an<br>&gt; &gt; &gt; &gt; &gt; existing parameter and makes it return a different value during the
<br>&gt; &gt; &gt; &gt; &gt; execution of the body of the parameterize.&nbsp;&nbsp;This affects any code<br>&gt; &gt; &gt; &gt; &gt; called during that execution, even if it&#39;s in a different function,<br>&gt; &gt; &gt; &gt; &gt; module, whatever, so long as it uses the same parameter value.
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; It seems that one can use let to manipulate parameter objects (at<br>&gt; &gt; &gt; least<br>&gt; &gt; &gt; &gt; &gt; &gt; scheme doesn&#39;t forbid it) - any issues with using it?
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Let does not manipulate values at all.&nbsp;&nbsp;It just binds names to<br>&gt; &gt; &gt; &gt; &gt; existing values.&nbsp;&nbsp;It never changes values or their contents.<br>&gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;How do I know whether or not something is a parameter versus a<br>&gt; &gt; &gt; variable?<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; You could ask the same thing about numbers vs variables, or strings
<br>&gt; vs<br>&gt; &gt; &gt; &gt; &gt; variables.&nbsp;&nbsp;A variable is a name for a value.&nbsp;&nbsp;That value might be<br>&gt; &gt; &gt; &gt; &gt; anything: number, string, list, parameter, etc.&nbsp;&nbsp;But you should be<br>&gt; &gt; &gt; &gt; &gt; careful never to confuse the name with what it refers to.
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; And in response to the followup email: fluid-let, like let, operates<br>&gt; &gt; &gt; &gt; &gt; on variables (names), not values.&nbsp;&nbsp;Hence it would not be an<br>&gt; &gt; &gt; &gt; &gt; &quot;extension&quot; to make it work on parameters.&nbsp;&nbsp;If you give the name of
<br>&gt; a<br>&gt; &gt; &gt; &gt; &gt; parameter to fluid-let, it will change which parameter that name<br>&gt; &gt; &gt; &gt; &gt; refers to, not the contents of the current parameter.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; --
<br>&gt; &gt; &gt; &gt; &gt; Carl Eastlund<br>&gt; &gt; &gt; &gt; &gt; _________________________________________________<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp; For list-related administrative tasks:<br>&gt; &gt; &gt; &gt; &gt;<br>
&gt; <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;
<br>&gt; &gt; &gt; --<br>&gt; &gt; &gt; <a href="http://www.yinsochen.com">http://www.yinsochen.com</a><br>&gt; &gt; &gt; ...continuous learning...<br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;--<br>&gt;<br>&gt; <a href="http://www.yinsochen.com">
http://www.yinsochen.com</a><br>&gt; ...continuous learning...<br></blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.yinsochen.com">http://www.yinsochen.com</a><br>...continuous learning...