<!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 <===== in the
following code:</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>(define-syntax (x
stx)<BR> (syntax-case stx ()<BR> ((_ x)<BR> (let ((y
(expand-once #'x)))<BR> (printf "~s~n" (syntax->datum
y))<BR> (syntax-case y (#%app)<BR>
((#%app . z) #''app)<BR> (_ #''no-app))))))</FONT></DIV>
<DIV> </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??? <===== I expected app<BR>(x
list)<BR>; printed: list<BR>; value: no-app, ok</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Thanks, Jos</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV></BODY></HTML>