> From: Bill Schottstaedt <[EMAIL PROTECTED]> > Date: Tue, 19 Feb 2002 04:26:13 -0800 > > I think define-syntax is stumbling on vector constants: > > (use-modules (ice-9 syncase)) > > (define-syntax IF > (syntax-rules () > ((IF <form1> <form2>) (if <form1> <form2>)) > ((IF <form1> <form2> <form3>) (if <form1> <form2> <form3>)))) > > (IF (not (vector? #(4.0))) > (display "oops")) > > > invalid syntax #(4.0) > In /usr/lib/snd/share/guile/1.7.0/ice-9/syncase.scm: > 122: 0* [scm-error misc-error #f "~A ~S" ("invalid syntax" #(4.0)) ()] > > (happens in Guile 1.4 also).
This is not a bug in define-syntax, but on your code. R5RS requires vector constants to be quoted. Whether this makes sense or not is another question. (Note that Guile itself *does* accept unquoted vector constants, it's syncase which doesn't.) Try (IF (not (vector? '#(4.0))) (display "oops")) For me this works. HTH, 'martin _______________________________________________ Bug-guile mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-guile