-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 17-Jun-07, at 7:37 AM, Gabriel Kronberger wrote:
debian:/home/user/Desktop/gambc-4.0b22# gsi Gambit Version 4.0 beta 22
(load "~~/syntax-case")
"/usr/local/Gambit-C/4.0b22/syntax-case.scm"
syntax-rules
*** ERROR IN (console)@2.1 -- Unbound variable: syntax-rules 1> define-syntax *** ERROR IN (console)@3.1 -- Unbound variable: define-syntax 2> (define-syntax unless (syntax-rules () ((unless test body ...) (if test #f (begin body ...))))) *** ERROR IN (console)@5.19 -- Ill-formed expression 2>
It seems even though I can load syntax-case.scm, syntax-rules and define-syntax are still not defined. I must be missing something really obvious!
I know that I can use define-macro. I use it in my code now. However I would also like to play around with syntax-rules and according to the documentation it should work the way I tried to use it. So either I'm missing something obvious or the documentation is outdated or syntax-case.scm doesn't work on my debian system.
Any more hints I could try to make syntax-rules work? Thanks, Gabriel
I've done exactly the same thing on my MacBook Pro and get this (correct) behavior:
% gsi Gambit Version 4.0 beta 22
(load "~~/syntax-case")
"/usr/local/Gambit-C/4.0b22/syntax-case.scm"
syntax-rules
*** ERROR -- invalid syntax syntax-rules
define-syntax
*** ERROR -- invalid syntax define-syntax
(define-syntax unless
(syntax-rules () ((unless test body ...) (if test #f (begin body ...)))))
(unless #f (display "hello\n"))
hello
Something really strange is happening with your installation! Are you sure you are using the official distribution of beta 22?
http://www.iro.umontreal.ca/~gambit/download/gambit/4.0/source/ gambc-4.0b22.tar.gz
Also, could you check the top of the file /usr/local/Gambit-C/4.0b22/ syntax-case.scm ? It should read:
;======================================================================= =======
; File: "syntax-case.scm", Time-stamp: <2007-04-04 10:13:27 feeley>
; Copyright (c) 1998-2007 by Marc Feeley, All Rights Reserved.
; This is version 3.2 .
; This version includes a patch which avoids quoting self-evaluating ; constants. This makes it possible to use some Gambit specific forms ; such as declare, namespace and define-macro.
Also, make sure no "gambcext" and "gambcini" files are being loaded. To avoid loading the gambcini file do
% gsi -f
Marc