<!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.16481" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>Who can help me understand the following
two ???s ?</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>(eval ''#0=(1 . #0#)) ; --> #0=(1 . #0#)
; ok<BR>(define s (syntax-rules () ((_ x) (eval 'x))))<BR>;(s '#0=(1 . #0#))
--> bug ?: bad syntax in: #0=(1 . #0#) ; ???<BR>;(s ''#0=(1 . #0#)) -->
bug syntax-source: expects argument of type <syntax>; given '#0=(1 . #0#)
; ???</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face="Courier New" size=2>(define-syntax t (syntax-rules () ((_ x)
(eval `x))))<BR>;(t '#0=(1 . #0#)) ; never returns ; ok, because quasiquote
allocates and looks inside the circular list for unquote<BR>(t ,''#0=(1 . #0#))
; --> #0=(1 . #0#) ; ok<BR>(t ','#0=(1 . #0#)) ; --> #0=(1 . #0#) ;
ok</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>
<DIV><FONT face="Courier New" size=2>Is this a bug or am I missing some profound
understanding?</FONT></DIV>
<DIV><FONT face="Courier New" size=2>I know that the use of eval is not
encouraged, but I need it in my own test system (allowing multiple values,
checking standard output and checking for the correct error messages when
expected)</FONT></DIV>
<DIV>Thanks, Jos koot</DIV></FONT></DIV></BODY></HTML>