<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 14, 2014 at 11:58 AM, Alessio Stalla <span dir="ltr"><<a href="mailto:alessiostalla@gmail.com" target="_blank">alessiostalla@gmail.com</a>></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"><div dir="ltr"><div>At the top level, PROGN is treated as if each contained expression appeared at the top level. So generally wrapping a PROGN around the result is precisely what you need to do.<br>
<br></div>However, since I see an IN-PACKAGE form in your example... beware that that IN-PACKAGE form will NOT affect the following DEFUN, because the symbols in it will have been read long before the IN-PACKAGE is executed.</div>
</blockquote><div><br></div><div>Yikes, I read too fast, did not see the in-package. Well, the "doing something else wrong" suggestion stands. :) But this works in Allegro CL:</div><div><br></div><div><div>(defmacro go4it (n)</div>
<div>  `(progn</div><div>     (in-package :mcna.db)</div><div>     (defun forty2 () ,n)))</div><div><br></div><div>(go4it 42)</div><div><br></div><div>(print (forty2))</div></div><div><br></div><div>I put this in a source file in a library source with a different package, in a Lisp session where :mcna.db was already a Lisp package.</div>
<div><br></div><div>I do find supplying an in-package form in a macro expansion alarming, though. I never use it, but would use-package work?</div><div><br></div><div>-hp</div><div><br></div><div> </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 dir="ltr"><div><div class="h5"><br>


<div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 14, 2014 at 4:45 PM, Paul Tarvydas <span dir="ltr"><<a href="mailto:paultarvydas@gmail.com" target="_blank">paultarvydas@gmail.com</a>></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">What is the best way to write a macro that returns more than one form to the top level?  E.g.<br>

<br>
(in-package :xxx)<br>
(defun ...)<br>
<br>
I've been wrapping a progn around the result, but LW doesn't like it very much, and SBCL seems to hate it.<br>
<br>
Thanks<span><font color="#888888"><br>
pt<br>
<br>
<br>
</font></span></blockquote></div><br></div></div></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Kenneth Tilton<div>Fort Lauderdale, FL</div><div><a href="http://tiltontec.com" target="_blank">http://tiltontec.com</a><br></div><div><a href="http://socialalgebra.com" target="_blank">http://socialalgebra.com</a><br>
</div></div>
</div></div>