PasteRack.org
Paste # 57811
2014-11-26 15:37:26

Fork as a new paste.

Paste viewed 92 times.


Embed:

  1. #lang racket
  2.  
  3. (define-syntax (define-points stx)
  4.   (syntax-case stx ()
  5.     [(_ lst (Kx ...))
  6.      (with-syntax ([(Kxd ...) (for/list ([s (in-syntax #'(Kx ...))])
  7.                                 (syntax->datum s))]
  8.                    [(Kxs ...) (generate-temporaries #'(Kx ...))])
  9.        #'(begin
  10.            (define X 42)
  11.            (define-values (Kx ...)
  12.              (for/fold ([Kxs '()] ...)
  13.                        ([v (in-list lst)])
  14.                (match-define (vector x state) v)
  15.                (match-define (vector K1 K1P K1PP K2 K2P K2PP K3 K3P K3PP K4P) state)
  16.                (values
  17.                 (cons (vector x Kxd) Kxs)
  18.                 ...)))))]))

=>