William Ramsay scripsit: > I've recently moved from Chicken-3.4.0 to Chicken-4.0.0. > > I've been using a structure macro I got from /Teach Yourself Scheme in > Fixnum Days/ by Dorai Sitaram. It's worked fine in 3.4 but fails in > 4.0 and I can figure out why. It fails on line 4 of (define-syntax > define-structure) with a compile error starting that s is not a > symbol. It is trying to read (define-structure customer ...) at the > bottom of the listing. Why is the word customer no longer a symbol?
In Chicken 4, a bare lambda in define-syntax is an explicit-renaming macro, so the simplest change is this: > (define-syntax define-structure > (lambda (s . ff) (lambda body rename compare) (define s (car body)) (define ff (cdr body)) -- Newbies always ask: John Cowan "Elements or attributes? http://www.ccil.org/~cowan Which will serve me best?" co...@ccil.org Those who know roar like lions; Wise hackers smile like tigers. --a tanka, or extended haiku _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users