I did use eval to solve this as follows:<div><br></div><div><div>(defmacro runstep (step)</div><div>   `(tagbody (go ,step) </div><div>       1 (format t "run 1~%") (go end)</div><div>       2 (format t "run 2~%") (go end)</div>
<div>       3 (format t "run 3~%") (go end)</div><div>       4 (format t "run 4~%") (go end)</div><div>       5 (format t "run 5~%") (go end)</div><div>     end ))</div><div><br></div><div>(let ((step 3)) (eval `(runstep ,step))</div>
<div><br></div><div>but I thought that the above  eval will expand runstep </div><div>then I choose to create another macro</div><div><br></div><div>(defmacro gostep (step) `(runstep ,step))</div><div><br></div>(let ((step 3)) (eval `(gostep ,step)))</div>
<div><br></div><div>But I do not know what happens when eval is called (when the macros</div><div>are expanded).</div><div><br></div><div>My objective is to go to a given step directly in constant time</div><div><br></div>
<div>Kind regards</div><div>Taoufik</div><div><br></div><div>My intention is to </div><div><br><div class="gmail_quote">On Wed, Dec 8, 2010 at 5:37 PM, Pascal Costanza <span dir="ltr"><<a href="mailto:pc@p-cos.net">pc@p-cos.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5"><br>
On 8 Dec 2010, at 17:36, Taoufik Dachraoui wrote:<br>
<br>
> Hi<br>
><br>
> I would like to implement something like the following:<br>
><br>
> (defun runstep (step)<br>
>    (tagbody (go step)<br>
>        1 (format t "run 1~%") (go end)<br>
>        2 (format t "run 2~%") (go end)<br>
>        3 (format t "run 3~%") (go end)<br>
>        4 (format t "run 4~%") (go end)<br>
>        5 (format t "run 5~%") (go end)<br>
>      end ))<br>
><br>
> this does not work, but how can I do something like this?<br>
<br>
</div></div>(defun runstep (step)<br>
  (ecase step<br>
     (1 ...)<br>
     (2 ...)<br>
     (3 ...)))<br>
<br>
<br>
Pascal<br>
<font color="#888888"><br>
--<br>
Pascal Costanza, mailto:<a href="mailto:pc@p-cos.net">pc@p-cos.net</a>, <a href="http://p-cos.net" target="_blank">http://p-cos.net</a><br>
Vrije Universiteit Brussel<br>
Software Languages Lab<br>
Pleinlaan 2, B-1050 Brussel, Belgium<br>
<br>
<br>
<br>
<br>
<br>
<br>
</font></blockquote></div><br></div>