> 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

Reply via email to