On 13/05/19 19:28, Phil Bewig wrote:
From the Standard Prelude <http://programmingpraxis.com/standard-prelude> at my
blog <http://programmingpraxis.com>:
(define-syntax (define-macro x)
(syntax-case x ()
((_ (name . args) . body)
(syntax (define-macro name (lambda args . body))))
((_ name transformer)
(syntax
(define-syntax (name y)
(syntax-case y ()
((_ . args)
(datum->syntax-object
(syntax _)
(apply transformer
(syntax-object->datum (syntax args)))))))))))
This gives the following error:
% csi
CHICKEN
(c) 2008-2018, The CHICKEN Team
(c) 2000-2007, Felix L. Winkelmann
Version 5.0.0 (rev 12f2f2cc)
linux-unix-gnu-x86-64 [ 64bit dload ptables ]
#;1> (define-syntax (define-macro x)
(syntax-case x ()
((_ (name . args) . body)
(syntax (define-macro name (lambda args . body))))
((_ name transformer)
(syntax
(define-syntax (name y)
(syntax-case y ()
((_ . args)
(datum->syntax-object
(syntax _)
(apply transformer
(syntax-object->datum (syntax args)))))))))))
Error: during expansion of (define-syntax ...) - in `define-syntax' -
symbol expected: (define-syntax (define-macro x) (syntax-case x () ((_
(name . args) . body) (syntax (define-macro name (lambda args . body))))
((_ name transformer) (syntax (define-syntax (name y) (syntax-case y ()
((_ . args) (datum->syntax-object (syntax _) (apply transformer
(syntax-object->datum (syntax args)))))))))))
Call history:
<syntax> (define-syntax (define-macro x) (syntax-case
x () ((_ (name . args) . body) (syntax (define-macro na... <--
#;1>
--
Martin
Dr Martin Ward | Email: mar...@gkc.org.uk | http://www.gkc.org.uk
G.K.Chesterton site: http://www.gkc.org.uk/gkc | Erdos number: 4
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users