Welcome to the CHICKEN Scheme pasting service

no title added by buhman on Mon Dec 3 09:43:58 2018

(define-record-type foo
  (make-foo x y)
  foo?
  (x foo-x)
  (y foo-y))

(define-syntax test
  (ir-macro-transformer
   (lambda (exp inject compare)
     (let ((get-x (inject (symbol-append (strip-syntax 'foo) '- (strip-syntax 'x))))
           (get-y (inject (symbol-append (strip-syntax 'foo) '- (strip-syntax 'y))))
           (body (cdr exp)))
       `(list (,get-x ,@body) (,get-y ,@body))))))

#;295> (test (begin (print "make") (make-foo 1 2)))
make
make
(1 2)

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Name of the CHICKEN extension manager:
Visually impaired? Let me spell it for you (wav file) download WAV