Add <div><br><div>(require (for-syntax syntax/parse)) </div><div><br></div><div>or</div><div><br></div><div>use syntax-case and wrap it in begin i.e (begin define id-lst .....)</div><div><br></div><div><br></div><div><br><br>
<div class="gmail_quote">On Wed, Jan 18, 2012 at 5:36 PM, Marijn <span dir="ltr">&lt;<a href="mailto:hkBst@gentoo.org">hkBst@gentoo.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
</div><div class="im">On 18-01-12 11:36, Veer Singh wrote:<br>
&gt; This seems to work (blind hack),<br>
<br>
</div>Unfortunately it doesn&#39;t work:<br>
_: wildcard not allowed as an expression in: (_ ((id:id expr:expr ...)<br>
...))<br>
<br>
in line 3 of the following:<br>
<div class="im"><br>
&gt; (define-syntax (depgraph stx) (syntax-parse stx [(_ ((id:id<br>
&gt; expr:expr ...) ...))<br>
&gt;<br>
&gt; (define id-lst (syntax-&gt;list #&#39;(id ...))) (define ctx<br>
&gt; (syntax-local-make-definition-context)) (syntax-local-bind-syntaxes<br>
&gt; id-lst #f ctx) (with-syntax ([p #&#39;((lambda () expr ...) ...)])<br>
&gt; (define p-lst (syntax-&gt;list #&#39;p)) (define vars (map (lambda (e)<br>
&gt; (free-vars (local-expand e &#39;expression &#39;() ctx))) p-lst))<br>
&gt; (with-syntax ([((f ...) ...) vars]) #&#39;&#39;((id (f ...)) ...)))]))<br>
&gt;<br>
&gt;<br>
&gt; (define simple-arith (depgraph ((a #f) (b (* 3 a)) (c (+ 5 a b)) (d<br>
&gt; (let ((a 9)) (- c a))) )))<br>
&gt;<br>
&gt; simple-arith ;((a ()) (b (a)) (c (b a)) (d (c)))<br>
</div><div class="im">-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2.0.18 (GNU/Linux)<br>
Comment: Using GnuPG with Mozilla - <a href="http://enigmail.mozdev.org/" target="_blank">http://enigmail.mozdev.org/</a><br>
<br>
</div>iEYEARECAAYFAk8WtcAACgkQp/VmCx0OL2xvBQCgxxM7UrjQqXhK/djusC9apPey<br>
CrYAn19TFKmxRsTOnzVZoknhdrY3BuJC<br>
=6bty<br>
-----END PGP SIGNATURE-----<br>
</blockquote></div><br></div></div>