I won't answer the question about R5RS, but in Racket you can do this
fairly succinctly:

#lang racket/base
(require (for-syntax racket/base
                     racket/syntax))

(define-syntax (vars stx)
  (syntax-case stx ()
    [(_ id count val)
     (with-syntax
         ([(id_i ...)
           (for/list ([i (in-range 1 (add1 (syntax->datum #'count)))])
             (format-id #'id "~a~a" #'id i))])
     (syntax/loc stx
       (begin (define id_i val)
              ...)))]))

(vars id 5 null)

(vector id1 id2 id3 id4 id5)

2014-09-24 22:35 GMT-04:00 Alejandro Zamora <ter...@ltu.sld.cu>:
> Hi Racket people:
>         I have a (maybe too simple) question:
>         How I create one macro like this (but using define-macro &
>         R5RS language only)?:
>
>         (vars sym var-cant val-of-vars)
>
>         Example:
>         (vars id 5 null) -> (prog (define id1 null)
>                                   (define id2 null)
>                                   (define id3 null)
>                                   (define id4 null)
>                                   (define id5 null))
>
> --
> Nunca digas nunca, di mejor: gracias, permiso, disculpe.
>
> Este mensaje le ha llegado mediante el servicio de correo electronico que 
> ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema 
> Nacional de Salud. La persona que envia este correo asume el compromiso de 
> usar el servicio a tales fines y cumplir con las regulaciones establecidas
>
> Infomed: http://www.sld.cu/
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users



-- 
Jay McCarthy
http://jeapostrophe.github.io

           "Wherefore, be not weary in well-doing,
      for ye are laying the foundation of a great work.
And out of small things proceedeth that which is great."
                          - D&C 64:33

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to