<div><font face="courier new,monospace">There is also the 'lisp macro which can be used from inside a Parenscript expression:</font></div>
<div><font face="courier new,monospace"></font> </div>
<div><font face="courier new,monospace">(ps:ps (setf y (lisp (* 2 2))))</font></div>
<div><font face="courier new,monospace">=> "y = 4;"</font></div>
<div><font face="courier new,monospace"></font> </div>
<div><font face="courier new,monospace">This allows your example to work if we declare x special:</font></div>
<div><font face="courier new,monospace"></font> </div>
<div><font face="courier new,monospace">(let ((x 1))</font></div>
<div><font face="courier new,monospace">  (declare (special x))<br>  (ps:ps (setf y (lisp x))))</font></div>
<div><font face="Courier New">=> "y = 1;"</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">But it doesn't pick up the lexical environment:</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">(let ((x 1))<br>  (ps:ps (setf y (lisp x))))</font></div>
<div><font face="Courier New"></font>  <font face="Courier New">=> </font><font face="Courier New">[Condition of type UNBOUND-VARIABLE]</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">This is true even when PS is the current package. </font><font face="Courier New">Can anyone (Vladimir?) explain whether it has to be this way? Or could PS be extended to pick up lexical bindings as well?</font></div>

<div><font face="Courier New"></font> </div>
<div><font face="Courier New">Daniel</font></div>
<div><font face="Courier New"></font> </div>
<div> </div>
<div> </div>
<div> </div>
<div><br> </div>
<div class="gmail_quote">On Mon, Mar 17, 2008 at 4:25 PM, Simon Cusack <<a href="mailto:scusack@fastmail.com.au" target="_blank">scusack@fastmail.com.au</a>> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi Wout,<br>
<div><br>On Mon, 17 Mar 2008 23:56:34 +0000<br>Wout Perquin <<a href="mailto:hedres@skynet.be" target="_blank">hedres@skynet.be</a>> wrote:<br><br>> Hi,<br>> I am looking for examples that show how lisp data can be passed to ps<br>
> scripts.  E.g. :<br>> I would like that<br>> (let ((x 1))<br>>   (ps:ps (setf y x)))<br>> is translated into :<br>> "y = 1;"<br>> in other words, how do I refer from within a parenscript construct to<br>
> the lisp environment to collect a value ?<br>> Many thanks,<br>> -Wout<br><br></div>I use ps:ps* like so;<br>
<div><br>(let ((x 1))<br> (ps:ps* `(setf y ,x)))<br><br></div>- sim<br>
<div>
<div></div>
<div>_______________________________________________<br>parenscript-devel mailing list<br><a href="mailto:parenscript-devel@common-lisp.net" target="_blank">parenscript-devel@common-lisp.net</a><br><a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</div></div></blockquote></div><br>