PasteRack.org
Paste # 13588
2015-08-29 17:43:33

Fork as a new paste.

Paste viewed 431 times.


Embed:

  1. #lang racket
  2.  
  3. (require syntax/parse)
  4.  
  5. (define (syntax-split delimiter stx)
  6.   (syntax-parse stx
  7.     [(elem ... delim:id . rest)
  8.      #:when (free-identifier=? #'delim delimiter)
  9.      #`((elem ...) . #,(syntax-split delimiter #'rest))]
  10.     [(elem ...)
  11.      #'((elem ...))]))
  12.  
  13. (syntax-split #'|,| #'(1 + 1 |,| 5 + 1))

=>

#<syntax:2:0 ((1 + 1) (5 + 1))>