Advertisement
Guest User

Untitled

a guest
May 25th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 0.44 KB | None | 0 0
  1. #lang racket
  2.  
  3. (require [for-syntax racket/stream])
  4.  
  5. (define-for-syntax (range n) (stream->list (in-range n)))
  6.  
  7. (define-syntax big-case-datum
  8.   (lambda (ctx)
  9.     (syntax-case ctx ()
  10.       ((_ n)
  11.        (with-syntax ([ra (datum->syntax ctx (range (syntax->datum #'n)))])
  12.          #'(lambda (a) (case a
  13.                    (ra 'in)
  14.                    (else 'out))))))))
  15.  
  16. ((big-case-datum 10) 2) ;; => 'in
  17. ((big-case-datum 10) 13) ;; => 'out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement