bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: define-syntax and vector constants


From: Martin Grabmueller
Subject: Re: define-syntax and vector constants
Date: Tue, 19 Feb 2002 13:35:45 +0100 (MET)

> From: Bill Schottstaedt <address@hidden>
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]