<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16788" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>My question is at the &lt;===== in the 
following code:</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>(define-syntax (x 
stx)<BR>&nbsp;(syntax-case stx ()<BR>&nbsp; ((_ x)<BR>&nbsp;&nbsp; (let ((y 
(expand-once #'x)))<BR>&nbsp;&nbsp;&nbsp; (printf "~s~n" (syntax-&gt;datum 
y))<BR>&nbsp;&nbsp;&nbsp; (syntax-case y (#%app)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
((#%app . z) #''app)<BR>&nbsp;&nbsp;&nbsp;&nbsp; (_ #''no-app))))))</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>(x (let ((a 1)) a))<BR>; printed: 
(let-values (((a) 1)) a)<BR>; value: no-app, ok<BR>(x (list 1 2 3))<BR>; printed 
(#%app list 1 2 3)<BR>; value: no-app, why??? &lt;===== I expected app<BR>(x 
list)<BR>; printed: list<BR>; value: no-app, ok</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Thanks, Jos</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV></BODY></HTML>