<!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.2716.2200" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=946123215-01082002>I'm doing a little 
work in version 103 with define-syntax and I'm having a little trouble.&nbsp; 
Here's my example and the results.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=946123215-01082002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=946123215-01082002>(require-library "synrule.ss")</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=946123215-01082002>(define-syntax d1<BR>&nbsp; (syntax-rules 
()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
((_ (fun arg1 . rest) pgm 
...)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'improper-list)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
((_ (fun arg1 ...) pgm 
...)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'multi-args)<BR>&nbsp;&nbsp;&nbsp;))</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=946123215-01082002>(define-syntax d2<BR>&nbsp; (syntax-rules 
()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
((_ (fun arg1 ...) pgm 
...)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'multi-args)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
((_ (fun arg1 . rest) pgm 
...)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'improper-list)<BR>&nbsp;&nbsp;&nbsp;))<BR></SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=946123215-01082002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=946123215-01082002><FONT 
face=Arial>Results:</FONT></SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=946123215-01082002><FONT 
face=Arial></FONT></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=946123215-01082002><FONT 
face=Arial>Welcome to DrScheme, version 103p1.<BR>Language: Graphical Full 
Scheme (MrEd) Custom.<BR>&gt; <FONT face="Courier New">(d1 (x a b c) 
a)<BR></FONT>improper-list<BR>&gt; <FONT face="Courier New">(d2 (x a b c) 
a)<BR></FONT>multi-args<BR>&gt; <FONT face="Courier New">(d1 (x a . b) 
a)<BR></FONT>improper-list<BR>&gt; <FONT face="Courier New">(d2 (x a . b) 
a)<BR></FONT>&nbsp;andmap: expects type &lt;proper list&gt; as 2nd argument, 
given: (a . b); other arguments were: #&lt;procedure&gt;<BR>&gt; 
</FONT></DIV></SPAN></FONT>
<P><FONT face=Arial size=2><SPAN class=946123215-01082002>My question is 
this.&nbsp;&nbsp;How do I&nbsp;uniquely identify an improper list verses 
multiple arguments.&nbsp; d1 works half the time and d2 works the other half, 
but I need to have a solution that works all of the time.&nbsp; I know how to do 
it in the 200 version with the use of syntax-case and fenders, but I need to be 
able to support 103.</SPAN></FONT></P>
<P><FONT size=2></FONT>&nbsp;</P>
<P><FONT face=Arial size=2>Thanks,</FONT></P>
<P><FONT face=Arial size=2>Gary L. Pendleton<BR>Integra Software Systems, 
LLC<BR>Phone: (615) 595-0900&nbsp; Ext. 803<BR>Cell:&nbsp;(615) 394-6754<BR>Fax: 
(615) 628-0100<BR>Email: </FONT><A 
href="mailto:gpendleton@integra-online.com"><FONT face=Arial 
size=2>gpendleton@integra-online.com</FONT></A><BR><FONT face=Arial 
size=2>&nbsp; <BR></FONT></P>
<P><FONT face=Arial size=2></FONT>&nbsp;</P>
<DIV>&nbsp;</DIV></BODY></HTML>