<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 15, 2013 at 6:48 AM, Matthias Felleisen <span dir="ltr">&lt;<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Is this supposed to be a CESK machine state where you apply \x.M to V (actually V and the empty env, which is a highly unusual left-hand side)?<br></blockquote><div><br></div><div>Yeah. the machine is a CESK machine, and the reduction rule is function application essentially. </div>
<div><br></div><div>The change is that I want to model thread spawn and join, </div><div>which I think I can remodel the whole machine  in the way  that I can still &quot;plug&quot; the previous rules, except join and spawn, which i need to write new). and So, the model with thread is:</div>
<div><br></div><div> (context (M å ê))<br></div><div> (thread (tid context) )<br> (threads  (thread ...))<br></div><div><br></div><div>at the same time using a global store (Store) for simplicity, but really a state is a threads * store</div>
<div><br></div><div>and for the reduction with syntax error reported in the previous rule,</div><div> (Some mistakes in  the original post, so I copy-past it again below), </div><div>I try to use pattern matching the treads list, which tries to get the first thread entry from the list of threads, </div>
<div><br></div><div class="gmail_quote">(--&gt;</div><div class="gmail_quote">    (((tid   (V å (fn ((ë X M) å_f) ê))) ...) S) ; tid, context</div><div class="gmail_quote">     (((tid  (M  (update å_f X ó_n) ê)) ...) S)</div>
<div class="gmail_quote">     tcesk3</div><div class="gmail_quote">     (where ó_n ,(fresh-ó))</div><div class="gmail_quote">     (side-condition</div><div class="gmail_quote">      (not (redex-match thread-cesk-iswim-plus X (term V ))) )  ;syntax: missing ellipsis with pattern variable in template in: V</div>
<div class="gmail_quote">    (side-condition</div><div class="gmail_quote">      (begin (store-update! (term ó_n) (term (V å)) Store) #t)))</div></div><div class="gmail_quote"><div><br></div><div>I am not sure the design or the whole things making sense or not, but just trying to do some exercise of using PLT-Redex...</div>
<div><br></div><div>Thanks,</div><div>--Monica</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><div class="h5"><br>
<br>
On Jul 15, 2013, at 4:28 AM, Monica Tomson wrote:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; I have the following reduction rule, it keeps on throwing the compiling error:missing ellipsis with pattern variable in template in: V<br>
&gt;<br>
&gt; I am confused where to put the ellipsis?<br>
&gt;<br>
&gt;<br>
&gt; (--&gt; ;((V å) S (fn ((ë X M) å_f) ê))<br>
&gt;         ;((M (update å_f X ó_n)) S ê)<br>
&gt;      ((tid  (V å (fn ((ë X M) å_f) ê))) ...) ; tid, context<br>
&gt;      ((tid  (M  (update å_f X ó_n) ê)) ...)<br>
&gt;      tcesk3<br>
&gt;      (where ó_n ,(fresh-ó))<br>
&gt;      (side-condition<br>
&gt;       (not (redex-match thread-cesk-iswim-plus X (term V ))) )  ; ERROR: syntax: missing ellipsis with pattern variable in template in: V<br>
&gt;     (side-condition<br>
&gt;       (begin (store-update! (term ó_n) (term (V å)) Store) #t)))<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; --Shuying<br>
</div></div><div class=""><div class="h5">&gt; ____________________<br>
&gt;  Racket Users list:<br>
&gt;  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</div></div></blockquote></div><br></div></div>