PasteRack.org
Paste # 28946
2017-11-23 10:24:47

Fork as a new paste.

Paste viewed 81 times.


Embed:

  1. #lang racket
  2.  
  3. ; broken macro
  4.  
  5.  
  6. (define-syntax-rule (make-env-param ids)
  7.   `(begin
  8.       ,@(map (lambda (i)
  9.                `(define ,i (make-parameter
  10.                             #f
  11.                             (lambda (a)
  12.                               (and (string-environment-variable-name? a)
  13.                                    a)))))
  14.              ids)))
  15.  
  16.  
  17. > (make-env-param '(id serc dst))
  18. '(begin
  19.    (define id
  20.      (make-parameter #f (lambda (a) (and (string-environment-variable-name? a) a))))
  21.    (define serc
  22.      (make-parameter #f (lambda (a) (and (string-environment-variable-name? a) a))))
  23.    (define dst
  24.      (make-parameter #f (lambda (a) (and (string-environment-variable-name? a) a)))))

=>

#<procedure:>>

'(begin

   (define id

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a))))

   (define serc

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a))))

   (define dst

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a)))))

'(begin

   (define id

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a))))

   (define serc

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a))))

   (define dst

     (make-parameter

      #f

      (lambda (a) (and (string-environment-variable-name? a) a)))))