<html>
<br>
Greetings,<br><br>
I took a define-syntax definition for 'do' from &quot;The Scheme<br>
Programming Language&quot; by Dybvig and tried it under DrScheme<br>
version 200.&nbsp; The definition and error is as follows:<br><br>
<font size=3>(define-syntax debug-do<br>
&nbsp; (lambda (x)<br>
&nbsp;&nbsp;&nbsp; (syntax-case x ()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((_ (binding ...) (test res ...) exp
...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (with-syntax ((((var val update)
...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(map (lambda (b)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(syntax-case b ()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
((var val)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(syntax (var val var)))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
((var val update)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(syntax (var val update)))))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(syntax (binding ...)))))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (syntax (let doloop
((var val) ...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(if test<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(begin (if #f #f) res ...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(begin exp ... (doloop update ...))))))))))<br><br>
(define try<br>
&nbsp; (lambda (m)<br>
&nbsp;&nbsp;&nbsp; (debug-do ((i 0 (+ i 1)))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&gt; i m) 88)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (display i)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (newline))))<br><br>
<br>
'try' works fine with the real 'do' but gives the following error with
'debug-do'<br>
at definition time:<br><br>
map: expects type &lt;list&gt; as 2nd argument, given:
#&lt;syntax:C:\Scheme-debugger\debugger.scm:266:28&gt;; other arguments
were: #&lt;procedure:...ger\debugger.scm:260:28&gt;<br><br>
(debugger.scm is a debugger I'm working on - It actually 
works!)<br><br>
I need this code to work for real.&nbsp; It's not just an exercise for
me.<br>
Your help is appreciated.<br><br>
--blake<br>
<x-sigsep><p></x-sigsep>
-------<br>
Download source code to my Dynace Object Oriented<br>
Extension to C&nbsp; from&nbsp;
<a href="http://algorithms.us/" eudora="autourl">http://algorithms.us<br>
</a></font></html>